Esempio n. 1
0
        static void Main(string[] args)
        {
            try
            {
                Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

                IViewer figuresViwer = new Viewer(DefaultSettings.START_MESSAGE);
                TriangleValidatorFactory      validatorCreator = new TriangleValidatorFactory();
                IFigureValidator              triangleChecker  = validatorCreator.Create();
                TriangleFactory               triangleBuilder  = new TriangleFactory();
                FigureComparerBySquareFactory creator          = new FigureComparerBySquareFactory();
                IComparer <IFigure>           triangleComparer = creator.Create();
                IContinueChecker              continueChecker  = new ContinueChecker(new string[]
                {
                    DefaultSettings.FIRST_ANSWER, DefaultSettings.SECOND_ANSWER
                });
                INumbericsValidator numbersChecker             = new NumbericsValidator();
                FiguresSorterByDescendingFactory sorterFactory = new FiguresSorterByDescendingFactory();
                ConsoleController application = new ConsoleController(DefaultSettings.INSTRUCTION,
                                                                      continueChecker, numbersChecker, triangleChecker,
                                                                      triangleBuilder, triangleComparer, sorterFactory,
                                                                      figuresViwer);

                application.Run();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(DefaultSettings.INSTRUCTION);
            }

            Console.ReadKey();
        }
Esempio n. 2
0
        public void Run()
        {
            Viewer consoleViewer = new Viewer(DefaultSettings.QUESTION, Instruction);

            try
            {
                bool canContinue = false;

                do
                {
                    string[]          args = consoleViewer.InputParameters();
                    NumbericConvertor parametersConvertor = new NumbericConvertor(args);
                    double[]          sides = new double[DefaultSettings.SIDES_COUNT];
                    parametersConvertor.GetNumbers(out sides);
                    Envelope bigEnvelope = new Envelope(sides[0], sides[1]);

                    args = consoleViewer.InputParameters();
                    parametersConvertor = new NumbericConvertor(args);
                    sides = new double[DefaultSettings.SIDES_COUNT];
                    parametersConvertor.GetNumbers(out sides);
                    Envelope smallEnvelope = new Envelope(sides[0], sides[1]);

                    EnvelopesAnalyzer analyzer = new EnvelopesAnalyzer();
                    bool result = analyzer.CanPutInEnvelope(bigEnvelope, smallEnvelope);

                    if (result)
                    {
                        consoleViewer.ShowMessage(string.Format("{0}\n{1}",
                                                                DefaultSettings.RIGHT_ENVELOPE, DefaultSettings.MESSAGE));
                    }

                    string          userAnswer    = consoleViewer.InputAnswer(DefaultSettings.QUESTION);
                    ContinueChecker answerChecker = new ContinueChecker(new string[] { "y", "yes" });
                    canContinue = answerChecker.CanContinue(userAnswer);
                } while (canContinue);
            }
            catch (FormatException ex)
            {
                consoleViewer.ShowMessage(string.Format("{0}\n{1}", ex.Message, Instruction));
            }
            catch (ArgumentOutOfRangeException ex)
            {
                consoleViewer.ShowMessage(string.Format("{0}\n{1}", ex.Message, Instruction));
            }
        }