IEnumerable <ISeriesItem> WrapItemState(IEnumerable <ItemState <Path> > siss) { foreach (var state in siss) { if (state is SeriesItemState sis) { var sis2 = new ISeriesItemValue[sis.Elements.Length]; for (int idx = 0; idx < sis.Elements.Length; idx++) { sis2[idx] = new ItemStateValueWrapper(sis, sis.Elements[idx].Item1, idx); } var sivc = new ItemStateMultiChannelWrapper(sis, sis2); yield return(sivc); } else if (state is SeriesItemState_Custom sisc) { var sis2 = new ISeriesItemValue[sisc.Elements.Length]; for (int idx = 0; idx < sisc.Elements.Length; idx++) { sis2[idx] = new ItemStateValueCustomWrapper(sisc, sisc.Elements[idx].Item1, sisc.CustomValue, idx); } var sivc = new ItemStateMultiChannelWrapper(sisc, sis2); yield return(sivc); } } }
IEnumerable <ISeriesItem> WrapItemState(IEnumerable <SeriesItemState> siss) { foreach (var sis in siss) { // IST check Custom first it's a subclass! if (sis is SeriesItemState_Custom sisc) { var sis2 = new ISeriesItemValue[sis.Elements.Count]; for (int idx = 0; idx < sis.Elements.Count; idx++) { sis2[idx] = new ChannelItemState_Custom(sis.Index, sis.XValue, sis.XOffset, sis.Elements[idx].Item1, sisc.CustomValue, sis.Elements[idx].Item2, idx); } var sivc = new ItemStateMultiChannelWrapper(sis, sis2); yield return(sivc); } else { var sis2 = new ISeriesItemValue[sis.Elements.Count]; for (int idx = 0; idx < sis.Elements.Count; idx++) { sis2[idx] = new ChannelItemState(sis.Index, sis.XValue, sis.XOffset, sis.Elements[idx].Item1, sis.Elements[idx].Item2, idx); } var sivc = new ItemStateMultiChannelWrapper(sis, sis2); yield return(sivc); } } }
/// <summary> /// See <see cref="ISeriesItemCommon.Wrap"/>. /// </summary> public ISeriesItem Wrap() { var sis2 = new ISeriesItemValue[2]; sis2[0] = new ChannelItemState(Index, XValue, XOffset, Value, PlacementAngle, RADIUS / 2, Element, 0); sis2[1] = new ChannelItemState(Index, XValue, XOffset, Percent, PlacementAngle, RADIUS / 2, Element, 1); var sivc = new ItemStateMultiChannelWrapper(this, sis2); return(sivc); }
/// <summary> /// Ctor. /// </summary> /// <param name="ipsiv"></param> /// <param name="isiv"></param> public SelectorContext(IProvideSeriesItemValues ipsiv, ISeriesItemValue isiv) { Source = ipsiv; ItemValue = isiv; }