Exemplo n.º 1
0
 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;
         }
     }
 }