Пример #1
0
        public decimal Manage(string expression)
        {
            if (_cacheManager.Exist(expression))
            {
                return(_cacheManager.Get(expression));
            }

            if (!_validator.Validate(expression))
            {
                throw new InvalidOperationException("Expression is invalid");
            }

            var formedExpression = _formater.Format(expression);

            var result = _calculatorEngine.Calculate(formedExpression);

            _cacheManager.Insert(expression, result);

            return(result);
        }