public virtual void SetValues(IEnumerable values, params IVariableFilter[] filters) { if (Parent != null) { Parent.SetValues(values, GetFiltersInParent(filters)); } else { lock (Store) { //split up the enumerable of values among the components.. IList <IVariable> variablesToSet = GetComponentsToSet(filters); List <Type> types = variablesToSet.Select(v => v.ValueType).ToList(); IList <IEnumerable> enumerablesToSet = FunctionHelper.SplitEnumerable(values, types); //set the components one-by-one for (int i = 0; i < variablesToSet.Count; i++) { variablesToSet[i].SetValues(enumerablesToSet[i], filters); } } NotifyObserversOnFunctionValuesChanged(); } }
private IComparable GetRightValue(int argumentIndex, IComparable value) { return(FunctionHelper.GetFirstValueBiggerThan(value, Arguments[argumentIndex].Values)); }
private IComparable GetLeftValue(int argumentIndex, IComparable value) { //get the last smaller than value return(FunctionHelper.GetLastValueSmallerThan(value, Arguments[argumentIndex].Values)); }
public virtual string ToXml() { return(FunctionHelper.ToXml(this)); }