예제 #1
0
        public Either <Colour[], UserOption> TakeInput()
        {
            while (true)
            {
                var userInput = _inputReceiver.GetUserInput();

                if (string.Equals(userInput, UserOption.Quit.ToString(), StringComparison.CurrentCultureIgnoreCase))
                {
                    return(UserOption.Quit);
                }

                try
                {
                    var userAnswer = InputColourParser.ParseFromString(userInput);
                    _inputArrayLengthValidator.ValidateUserInput(userAnswer);

                    return(userAnswer);
                }
                catch (ParseException e)
                {
                    _errorHandler.DisplayParseExceptionMessage(e);
                }
                catch (LengthException e)
                {
                    _errorHandler.DisplayLengthExceptionMessage(e);
                }
            }
        }