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(); }
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)); } }