public CalculationProcessTests()
        {
            var pluginReader   = new OperationPluginReader();
            var operationsList = pluginReader.ReadPluginsFrom(Environment.CurrentDirectory + "\\Plugins");
            var recognizer     = new BaseRecognizer(operationsList);

            calculator = new PostfixCalculator(recognizer);
        }
Exemplo n.º 2
0
        static void Main()
        {
            var pluginReader = new OperationPluginReader();
            List <IOperation> operations;

            try
            {
                operations = pluginReader.ReadPluginsFrom(Environment.CurrentDirectory + "\\Plugins");
            }
            catch (DirectoryNotFoundException)
            {
                Console.WriteLine("Ошибка! Отсутсвует директория Plugins");
                Console.WriteLine("Нажмите любую клавишу, чтобы выйти...");
                Console.ReadKey();
                return;
            }
            var recognizer = new BaseRecognizer(operations);
            var calculator = new PostfixCalculator(recognizer);

            ShowAvailableOperations(calculator.GetAvailableOperations());
            var reader = new ConsoleInputReader();

            while (true)
            {
                try
                {
                    var result = calculator.Calculate(reader.GetExpression());
                    Console.WriteLine("Результат: {0}", result);
                }
                catch (UnrecognizedOperationException e)
                {
                    Console.WriteLine(e.Message);
                }
                Console.WriteLine("Нажмите Enter, чтобы продолжить или Esc, чтобы выйти");
                if (Console.ReadKey().Key == ConsoleKey.Escape)
                {
                    return;
                }
            }
        }