예제 #1
0
        public override void ExecuteConsole(Invoker command, ICalculatorComponent calculator, ILogger <CalculatorManager> logger)
        {
            bool check = UserChoiceCheck(command);

            while (check)
            {
                Prompts.Division();

                double a, b;
                int    c, d;
                double result, test;
                bool   skip = false;

                Prompts.FirstNumber();
                a = Convert.ToDouble(Console.ReadLine());
                c = (int)a;

                Prompts.SecondNumber();
                b = Convert.ToDouble(Console.ReadLine());
                d = (int)b;

                // Handles Divide By Zero Condition + Log Entry
                try
                {
                    test = c / d;
                }
                catch (DivideByZeroException e)
                {
                    skip = true;
                    Prompts.Logger();
                    logger.LogInformation(e.Message);
                }

                while ((skip.Equals(false)) && (b != 0))
                {
                    calculator.Operations["division"].CreateCalculation(calculator, a, b);
                    result = calculator.Operations["division"].GetResult(calculator);

                    Prompts.Result(result);

                    calculator.UserOperations.Add("/");
                    calculator.CalculatorState.Add(new Context(new Unmodified()));
                    check = false;
                    skip  = true;
                }

                check = false;
                skip  = false;
            }
        }