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); }
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"); } }
//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); }
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); }