Пример #1
0
 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();
     }
 }
Пример #2
0
 private IComparable GetRightValue(int argumentIndex, IComparable value)
 {
     return(FunctionHelper.GetFirstValueBiggerThan(value, Arguments[argumentIndex].Values));
 }
Пример #3
0
 private IComparable GetLeftValue(int argumentIndex, IComparable value)
 {
     //get the last smaller than value
     return(FunctionHelper.GetLastValueSmallerThan(value, Arguments[argumentIndex].Values));
 }
Пример #4
0
 public virtual string ToXml()
 {
     return(FunctionHelper.ToXml(this));
 }