Пример #1
0
        private FunctionResult CalculateFormula(string expression, DP_DataRepository mainDataItem, DR_Requester requester, List <int> usedFormulaIDs = null)
        {
            FunctionResult result = new FunctionResult();

            //result.FormulaUsageParemeters = FormulaUsageParemeters;
            //FormulaInstance formulaInstance = null;
            try
            {
                var target = FormulaInstanceInternalHelper.GetExpressionEvaluator(mainDataItem, requester, false, usedFormulaIDs);

                result.Result = target.Calculate(expression);

                //formulaInstance = new FormulaInstance(mainDataItem, requester, usedFormulaIDs);
                //formulaInstance.PropertyGetCalled += FormulaInstance_PropertyGetCalled;
                //var instanceResult = formulaInstance.CalculateExpression(expression);
                //if (formulaInstance.Exceptions.Any())
                //    throw new Exception("instance Error");
                //else
                //    result.Result = instanceResult;
                //formulaInstance.PropertyGetCalled -= FormulaInstance_PropertyGetCalled;
            }
            catch (Exception ex)
            {
                result.Exception = new Exception("خطا در محاسبه فرمول" + Environment.NewLine + ex.Message);
            }
            return(result);
        }
Пример #2
0
 //FormulaDTO Formula { set; get; }
 public I_ExpressionEvaluator GetExpressionEvaluator(DP_DataRepository dataItem, DR_Requester requester, bool definition, List <int> usedFormulaIDs = null)
 {
     return(FormulaInstanceInternalHelper.GetExpressionEvaluator(dataItem, requester, definition, usedFormulaIDs));
 }