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); }
/// <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); }