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); }
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."); } }