private static MeasurementData GetMeasurementData() { if (options != null && !options.IncludeMeasurementData) { return(null); } XElement measurementDataElement = (from i in supplementalDataDocument.Elements("supplementalData") .Elements("measurementData") select i).FirstOrDefault(); if (measurementDataElement == null) { return(null); } Progress("Adding measurement data", String.Empty); MeasurementData measurementData = new MeasurementData(); List <XElement> measurementSystemElements = measurementDataElement.Elements("measurementSystem").ToList(); if (measurementSystemElements.Count > 0) { List <RegionMeasurementSystem> minDaysCounts = new List <RegionMeasurementSystem>(); foreach (XElement measurementSystemElement in measurementSystemElements) { RegionMeasurementSystem regionMeasurementSystem = new RegionMeasurementSystem(); regionMeasurementSystem.MeasurementSystemId = measurementSystemElement.Attribute("type").Value.ToString(); regionMeasurementSystem.RegionIds = measurementSystemElement.Attribute("territories").Value.ToString().Split(' '); minDaysCounts.Add(regionMeasurementSystem); } measurementData.MeasurementSystems = minDaysCounts.ToArray(); } List <XElement> paperSizeElements = measurementDataElement.Elements("paperSize").ToList(); if (paperSizeElements.Count > 0) { List <RegionPaperSize> paperSizes = new List <RegionPaperSize>(); foreach (XElement paperSizeElement in paperSizeElements) { RegionPaperSize regionPaperSize = new RegionPaperSize(); regionPaperSize.PaperSizeId = paperSizeElement.Attribute("type").Value.ToString(); regionPaperSize.RegionIds = paperSizeElement.Attribute("territories").Value.ToString().Split(' '); paperSizes.Add(regionPaperSize); } measurementData.PaperSizes = paperSizes.ToArray(); } Progress("Added measurement data", string.Empty, ProgressEventType.Added, measurementData); return(measurementData); }
/// <summary> /// GetMeasurementSystem gets the MeasurementSystem for the region /// </summary> /// <param name="regionId">The Id of the region to get the MeasurementSystem for</param> /// <returns>The MeasurementSystem for the region</returns> public static RegionMeasurementSystem GetMeasurementSystem(string regionId) { if (NCldr.MeasurementData == null) { return(null); } RegionMeasurementSystem measurementSystem = (from ms in NCldr.MeasurementData.MeasurementSystems where ms.RegionIds.Contains(regionId) select ms).FirstOrDefault(); if (measurementSystem != null) { // this region has a specific measurement system return(measurementSystem); } // there is no specific measurement system for this region so default to the measurement system for the world ("001") return((from ms in NCldr.MeasurementData.MeasurementSystems where ms.RegionIds.Contains(NCldr.RegionIdForTheWorld) select ms).FirstOrDefault()); }