Пример #1
0
        internal static Series FromXElement(XElement seriesElement)
        {
            Series series = new Series();

            //// Import attributes for the interfaces a Series implements
            series.ImportISignableItemWithName(seriesElement);

            //// Import all other attributes for a Series
            series.Dependency = seriesElement.Attribute("dependency").ImportDependency();
            series.SeriesId   = seriesElement.Attribute("seriesID").Value;

            XAttribute visibleAttribute = seriesElement.Attribute("visible");

            if (visibleAttribute != null)
            {
                series.Visible = XmlConvert.ToBoolean(visibleAttribute.Value);
            }

            XAttribute plotScaleAttribute = seriesElement.Attribute("plotScale");

            if (plotScaleAttribute != null)
            {
                series.PlotScale = plotScaleAttribute.ImportPlotScale();
            }

            series.SeriesType = seriesElement.Attribute("seriesType").ImportSeriesType();

            //// Import the child elements of the Series
            series.ValueSets.AddRange(seriesElement.Elements(NamespaceHelper.GetXName("IndividualValueSet")).Select(x => IndividualValueSet.FromXElement(x, series.SeriesType)));
            series.ValueSets.AddRange(seriesElement.Elements(NamespaceHelper.GetXName("EncodedValueSet")).Select(x => EncodedValueSet.FromXElement(x, series.SeriesType)));
            series.ValueSets.AddRange(seriesElement.Elements(NamespaceHelper.GetXName("AutoIncrementedValueSet")).Select(x => AutoIncrementedValueSet.FromXElement(x, series.SeriesType)));

            XElement unitElement = seriesElement.Element(NamespaceHelper.GetXName("Unit"));

            if (unitElement != null)
            {
                series.Unit = Unit.FromXElement(unitElement);
            }

            return(series);
        }
Пример #2
0
        internal static IndividualValueSet FromXElement(XElement individualValueSetElement, SeriesType seriesType)
        {
            IndividualValueSet valueSet = new IndividualValueSet(seriesType);

            //// Import attributes for the implemented interfaces
            valueSet.ImportIValueSet(individualValueSetElement);

            //// Import the values from the child elements
            if (seriesType == SeriesType.Int32)
            {
                valueSet.AddRange(individualValueSetElement.Elements(NamespaceHelper.GetXName("I")).Select(x => (dynamic)XmlConvert.ToInt32(x.Value)));
                return(valueSet);
            }
            else if (seriesType == SeriesType.Int64)
            {
                valueSet.AddRange(individualValueSetElement.Elements(NamespaceHelper.GetXName("L")).Select(x => (dynamic)XmlConvert.ToInt64(x.Value)));
                return(valueSet);
            }
            else if (seriesType == SeriesType.Float32)
            {
                valueSet.AddRange(individualValueSetElement.Elements(NamespaceHelper.GetXName("F")).Select(x => (dynamic)XmlConvert.ToSingle(x.Value)));
                return(valueSet);
            }
            else if (seriesType == SeriesType.Float64)
            {
                valueSet.AddRange(individualValueSetElement.Elements(NamespaceHelper.GetXName("D")).Select(x => (dynamic)XmlConvert.ToDouble(x.Value)));
                return(valueSet);
            }
            else if (seriesType == SeriesType.String)
            {
                valueSet.AddRange(individualValueSetElement.Elements(NamespaceHelper.GetXName("S")).Select(x => x.Value));
                return(valueSet);
            }
            else if (seriesType == SeriesType.Boolean)
            {
                valueSet.AddRange(individualValueSetElement.Elements(NamespaceHelper.GetXName("Boolean")).Select(x => (dynamic)XmlConvert.ToBoolean(x.Value)));
                return(valueSet);
            }
            else if (seriesType == SeriesType.DateTime)
            {
                valueSet.AddRange(individualValueSetElement.Elements(NamespaceHelper.GetXName("DateTime")).Select(x => (dynamic)XmlConvert.ToDateTime(x.Value, XmlDateTimeSerializationMode.Utc)));
                return(valueSet);
            }
            else if (seriesType == SeriesType.PNG)
            {
                valueSet.AddRange(individualValueSetElement.Elements(NamespaceHelper.GetXName("PNG")).Select(x => new PngImage(x.Value)));
                return(valueSet);
            }
            else if (seriesType == SeriesType.EmbeddedXML)
            {
                valueSet.AddRange(individualValueSetElement.Elements(NamespaceHelper.GetXName("EmbeddedXML")).Select(x => new EmbeddedXml(x.Value)));
                return(valueSet);
            }
            else if (seriesType == SeriesType.SVG)
            {
                valueSet.AddRange(individualValueSetElement.Elements(NamespaceHelper.GetXName("SVG")).Select(x => new SvgImage(x.Value)));
                return(valueSet);
            }
            else
            {
                throw new NotSupportedException($"{seriesType}' is not supported.");
            }
        }