Esempio n. 1
0
        private void AddResult(FormulaContext formulaContext)
        {
            Guard.AgainstNull(formulaContext, nameof(formulaContext));

            Logger.LogNormal($"[result] : {formulaContext.Result} ({formulaContext.FormulaName})");

            AddResult(formulaContext.FormulaName, formulaContext.Result);
        }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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;
            }
            }
        }
Esempio n. 5
0
        public void Add(FormulaContext formulaContext)
        {
            Guard.AgainstNull(formulaContext, nameof(formulaContext));

            _containedFormulaContexts.Add(formulaContext);
        }