Esempio n. 1
0
        public IActionResult Calculate(CalculatorViewModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException("model", "Argument cannot be null");
            }

            var operation = model.Operator;

            if (operation == CalculatorConstants.OperatorAdd)
            {
                //perform add
                model.ResultValue = _Calculatorservice.Add(model.Value1, model.Value2);

                model.IsResultValid = true;
                model.Message       = CalculatorConstants.Message_Success;
                PopulateOperators(model, operation);

                return(View("Index", model));
            }
            else if (operation == CalculatorConstants.OperatorDivide)
            {
                if (model.Value2 == 0)
                {
                    model.Value2        = 0;
                    model.IsResultValid = false;
                    model.Message       = CalculatorConstants.Message_CantDivideByZero;
                    PopulateOperators(model, operation);
                }
                else
                {
                    model.ResultValue   = new Calculator().Divide(model.Value1, model.Value2);
                    model.Message       = CalculatorConstants.Message_Success;
                    model.IsResultValid = true;
                    PopulateOperators(model, operation);
                }


                return(View("Index", model));
            }
            else if (operation == CalculatorConstants.OperatorSubtract)
            {
                var newoperation = CalculatorConstants.OperatorSubtract;
                model.ResultValue   = _Calculatorservice.Subtract(model.Value1, model.Value2);
                model.IsResultValid = true;
                model.Message       = CalculatorConstants.Message_Success;
                PopulateOperators(model, newoperation);

                return(View("Index", model));
            }
            else if (operation == CalculatorConstants.OperatorMultiply)
            {
                var newoperation = CalculatorConstants.OperatorMultiply;
                model.ResultValue   = _Calculatorservice.Multiply(model.Value1, model.Value2);
                model.IsResultValid = true;
                model.Message       = CalculatorConstants.Message_Success;
                PopulateOperators(model, newoperation);

                return(View("Index", model));
            }

            return(View(model));
        }