예제 #1
0
 public static string GetStartValueAsDisplayString(this IStartValue startValue)
 {
     return(string.Format("{0} {1}",
                          startValue.ConvertToDisplayUnit(startValue.StartValue).ToString(CultureInfo.InvariantCulture),
                          startValue.DisplayUnit
                          ));
 }
        private IFormula defaultFormulaBasedOn(IStartValue startValue)
        {
            if (startValue.Formula != null)
            {
                return(_cloneManagerForModel.Clone(startValue.Formula));
            }

            return(_formulaTask.CreateNewFormula <ConstantFormula>(startValue.Dimension).WithValue(startValue.StartValue.GetValueOrDefault(double.NaN)));
        }
예제 #3
0
        protected static bool HasEquivalentStartValue(IStartValue startValue, double?originalStartValue)
        {
            if (!originalStartValue.HasValue)
            {
                return(double.IsNaN(startValue.StartValue.GetValueOrDefault(Double.NaN)));
            }

            if (!startValue.StartValue.HasValue)
            {
                return(false);
            }

            return(ValueComparer.AreValuesEqual(originalStartValue.Value, startValue.StartValue.Value));
        }
        /// <summary>
        ///    Checks that the formula is equivalent for the start value. This includes evaluation of constant formula to a double
        /// </summary>
        /// <param name="startValue">The start value to check</param>
        /// <param name="targetFormula">The formula being evaluated</param>
        /// <returns>True if the formula is equivalent to the start value formula</returns>
        public bool HasEquivalentFormula(IStartValue startValue, IFormula targetFormula)
        {
            var startValueFormula = startValue.Formula;

            if (startValueFormula == null && targetFormula == null)
            {
                return(true);
            }

            if ((startValueFormula == null || startValueFormula.IsConstant()) && targetFormula.IsConstant())
            {
                return(isConstantFormulaEqualToStartValue(startValue, targetFormula.DowncastTo <ConstantFormula>()));
            }

            return(_formulaTask.FormulasAreTheSame(startValue.Formula, targetFormula));
        }
예제 #5
0
 /// <summary>
 ///    Checks that the formula is equivalent for the start value. This includes evaluation of constant formula to a double
 /// </summary>
 /// <param name="startValue">The start value to check</param>
 /// <param name="targetFormula">The formula being evaluated</param>
 /// <returns>True if the formula is equivalent to the start value formula</returns>
 protected bool HasEquivalentFormula(IStartValue startValue, IFormula targetFormula)
 {
     return(_startValuePathTask.HasEquivalentFormula(startValue, targetFormula));
 }
 private static bool hasValidFormula(IStartValue startValue)
 {
     return(startValue.Formula != null && (startValue.Formula.IsExplicit()) || startValue.Formula.IsConstant());
 }
 /// <summary>
 ///    Checks to see if the constant formula equals the double StartValue
 /// </summary>
 /// <param name="startValue">The start value to check</param>
 /// <param name="targetFormula">The formula being evaluated</param>
 /// <returns>True if the formula is constant and evaluates to the same value as startValue.StartValue</returns>
 private static bool isConstantFormulaEqualToStartValue(IStartValue startValue, ConstantFormula targetFormula)
 {
     return(startValue.StartValue.HasValue && ValueComparer.AreValuesEqual(startValue.StartValue.Value, targetFormula.Calculate(null)));
 }
 protected static bool HasEquivalentStartValue(IStartValue startValue, IParameter parameter)
 {
     var(value, _) = parameter.TryGetValue();
     return(HasEquivalentStartValue(startValue, value));
 }