internal static EncodedValueSet FromXElement(XElement encodedValueSetElement, SeriesType seriesType) { EncodedValueSet encodedValueSet = new EncodedValueSet(seriesType); //// Import attributes for the implemented interfaces encodedValueSet.ImportIValueSet(encodedValueSetElement); //// Import the values from the content if (seriesType == SeriesType.Int32) { encodedValueSet.AddRange(encodedValueSetElement.Value.ToIntArray().Cast <dynamic>()); return(encodedValueSet); } else if (seriesType == SeriesType.Int64) { encodedValueSet.AddRange(encodedValueSetElement.Value.ToLongArray().Cast <dynamic>()); return(encodedValueSet); } else if (seriesType == SeriesType.Float32) { encodedValueSet.AddRange(encodedValueSetElement.Value.ToFloatArray().Cast <dynamic>()); return(encodedValueSet); } else if (seriesType == SeriesType.Float64) { encodedValueSet.AddRange(encodedValueSetElement.Value.ToDoubleArray().Cast <dynamic>()); return(encodedValueSet); } else { throw new NotSupportedException($"SeriesType '{seriesType}' is not supported when importing an EncodedValueSet."); } }
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); }