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); }
//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)); }