示例#1
0
        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);
        }
示例#2
0
        /// <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());
        }