private void AddResult(FormulaContext formulaContext) { Guard.AgainstNull(formulaContext, nameof(formulaContext)); Logger.LogNormal($"[result] : {formulaContext.Result} ({formulaContext.FormulaName})"); AddResult(formulaContext.FormulaName, formulaContext.Result); }
public void FormulaContextCompleted(FormulaContext formulaContext) { Guard.AgainstNull(formulaContext, nameof(formulaContext)); AddResult(formulaContext); Logger.LogNormal($"[completed] : {formulaContext.FormulaName} ({formulaContext.TotalMilliseconds} ms)"); if (_stack.Count > 0) { _stack.Pop(); } }
public FormulaContext FormulaContext(string formulaName) { Guard.AgainstNullOrEmptyString(formulaName, nameof(formulaName)); var result = new FormulaContext(this, formulaName); if (_stack.Count > 0) { _stack.Peek().Add(result); } else { RootFormulaContext = result; } _stack.Push(result); Logger.LogNormal($"[starting] : {formulaName}"); return(result); }
public void Perform(FormulaContext context, decimal value) { switch (Operation.ToLower()) { case "addition": { context.SetResult(context.Result + value); return; } case "subtraction": { context.SetResult(context.Result - value); return; } case "multiplication": { context.SetResult(context.Result * value); return; } case "division": { context.SetResult(context.Result / value); return; } case "rounding": { context.SetResult(Math.Round(context.Result, (int)value)); return; } } }
public void Add(FormulaContext formulaContext) { Guard.AgainstNull(formulaContext, nameof(formulaContext)); _containedFormulaContexts.Add(formulaContext); }