/// <summary> /// Get a single value and attempt to format it /// </summary> public string ToString(string format, IFormatProvider formatProvider) { object value = Reference.Dereference(); if (value == null) { return(string.Empty); } if (value is Iterator) { var items = (IList <object>)((Iterator)value).GetItem(); if (items.Count != 1) { return(string.Empty); } value = items[0]; } if (value is ISource) { value = ((ISource)value).GetItem(); } return(value is IFormattable ? ((IFormattable)value).ToString(format, formatProvider) : value.ToString()); }
public TupleValue(DataReference reference, int index) { var list = reference.Dereference(); Source = list as ISource; Index = index; }
public void ThenDerefernceMustResolveTheObject() { DataReference dataReference = new DataReference(Context, "testList"); var deref = dataReference.Dereference(); Assert.AreSame(deref, Context["testList"], "The context object was not resolved"); }
/// <summary> /// Initialise /// </summary> /// <param name="refA"></param> /// <param name="refB"></param> public CrossJoin(DataReference refA, DataReference refB) { var a = refA.Dereference() as IList <object>; var b = refB.Dereference() as IList <object>; _list = a.Join(b, p => 1, p => 1, (l, r) => new List <object> { l, r }).Cast <object>().ToList(); }
/// <summary> /// Initialise against a reference /// </summary> public ListSequence(DataReference reference) { ListItems = reference.Dereference() as IList <object>; }
/// <summary> /// Initialise against a reference /// </summary> public Switch(DataReference reference, IDictionary <object, object> map) : this(reference.Dereference() as ISource, map) { }
/// <summary> /// Initialise a new instance against a reference /// </summary> public When(DataReference reference, Op @operator, object rightHandSide) : this(reference.Dereference() as ISource, @operator, rightHandSide) { }
public PadLeft(DataReference reference, int length, char character) : this(reference.Dereference() as ISource, length, character) { }
/// <summary> /// Initialise against a reference /// </summary> public Substring(DataReference reference, int start, int?length = null) : this(reference.Dereference() as ISource, start, length) { }