Ejemplo n.º 1
0
        private static RegionDayOfWeek[] GetRegionDayOfWeeks(XElement weekDataElement, string elementName)
        {
            List <XElement> firstDaysCountElements = weekDataElement.Elements(elementName).ToList();

            if (firstDaysCountElements.Count > 0)
            {
                List <RegionDayOfWeek> firstDaysCounts = new List <RegionDayOfWeek>();
                foreach (XElement firstDaysCountElement in firstDaysCountElements)
                {
                    RegionDayOfWeek regionDayOfWeek = new RegionDayOfWeek();
                    regionDayOfWeek.DayOfWeek = GetDayOfWeek(firstDaysCountElement.Attribute("day").Value.ToString());
                    regionDayOfWeek.RegionIds = firstDaysCountElement.Attribute("territories").Value.ToString().Split(' ');

                    if (firstDaysCountElement.Attribute("alt") != null)
                    {
                        regionDayOfWeek.Alt = firstDaysCountElement.Attribute("alt").Value.ToString();
                    }

                    if (firstDaysCountElement.Attribute("references") != null)
                    {
                        regionDayOfWeek.References = firstDaysCountElement.Attribute("references").Value.ToString();
                    }

                    firstDaysCounts.Add(regionDayOfWeek);
                }

                return(firstDaysCounts.ToArray());
            }

            return(null);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// GetFirstDayOfWeek gets the first DayOfWeek for the region
        /// </summary>
        /// <param name="regionId">The Id of the region to get the first DayOfWeek for</param>
        /// <returns>The first DayOfWeek for the region</returns>
        public static DayOfWeek GetFirstDayOfWeek(string regionId)
        {
            if (NCldr.WeekData != null && NCldr.WeekData.FirstDayOfWeeks != null)
            {
                RegionDayOfWeek regionDayOfWeek = (from fdow in NCldr.WeekData.FirstDayOfWeeks
                                                   where fdow.RegionIds.Contains(regionId)
                                                   select fdow).FirstOrDefault();
                if (regionDayOfWeek != null)
                {
                    // there is a specific first day of week for this region
                    return(regionDayOfWeek.DayOfWeek);
                }

                // get the first day of week default (i.e. for the world)
                regionDayOfWeek = (from fdow in NCldr.WeekData.FirstDayOfWeeks
                                   where fdow.RegionIds.Contains(NCldr.RegionIdForTheWorld)
                                   select fdow).FirstOrDefault();
                if (regionDayOfWeek != null)
                {
                    return(regionDayOfWeek.DayOfWeek);
                }
            }

            return(DayOfWeek.Monday);
        }