Beispiel #1
0
        public IScreen HandleInput(string input)
        {
            if (input == "q")
            {
                return(mainScreen.Value);
            }

            if (string.IsNullOrEmpty(input))
            {
                throw new InvalidInputException("Username can't be empty");
            }

            try
            {
                var newUser = new Domain.User()
                {
                    Name   = input,
                    Amount = DefaultUserBill
                };
                userFacade.Create(newUser);
                dataBus.SetData(Constants.DataKeys.User, newUser);
            }
            catch (ValidationException ex)
            {
                throw new InvalidInputException(ex.Message);
            }

            return(mainScreen.Value);
        }
Beispiel #2
0
        public IScreen HandleInput(string input)
        {
            if (input == "q")
            {
                return(mainScreen.Value);
            }

            int selectedProduct = -1;

            if (input.IsValidCollectionSelect(_products.Length, out selectedProduct))
            {
                int productIndex = selectedProduct - 1;
                dataBus.SetData(Constants.DataKeys.SelectedProduct, _products[productIndex].Id);

                return(productScreen.Value);
            }
            else
            {
                throw new InvalidInputException("Invalid productNumber number");
            }
        }
Beispiel #3
0
        //private bool IsValidUserInput(string input, out int selectedUser)
        //{
        //    return int.TryParse(input, out selectedUser)
        //        && selectedUser >= 0
        //        && selectedUser - 1 < _users.Length;
        //}

        public IScreen HandleInput(string input)
        {
            if (input == "q")
            {
                return(mainScreen.Value);
            }

            int selectedUser = -1;

            //if (IsValidUserInput(input, out selectedUser))
            if (input.IsValidCollectionSelect(_users.Length, out selectedUser))
            {
                dataBus.SetData(Constants.DataKeys.User, _users[selectedUser - 1]);
            }
            else
            {
                throw new InvalidInputException("Invalid user number");
            }

            return(mainScreen.Value);
        }
Beispiel #4
0
        public IScreen HandleInput(string input)
        {
            if (input == "q")
            {
                dataBus.Remove(Constants.DataKeys.SelectedProduct);
            }
            else
            {
                int quantity = -1;
                if (!int.TryParse(input, out quantity) || quantity < 1)
                {
                    throw new InvalidInputException("Invalid quantity");
                }

                User currentUser = dataBus.GetData <User>(Constants.DataKeys.User)
                                   .Assert(() => new InvalidOperationException("Select user"));

                transactionsFacade.Buy(currentUser.Name, _product.Id, quantity);
                dataBus.SetData(Constants.DataKeys.User, usersRepository.GetByName(currentUser.Name));
            }

            return(mainScreen.Value);
        }