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); }
private void ShowUserInfo() { User user = dataBus.GetData <User>(Constants.DataKeys.User); if (user != null) { presenter.WriteLine($"Selected user: {user.Name}. Money: {user.Amount}"); presenter.WriteLine("--------------------------------\n"); } else { presenter.WriteLine("Please, select user"); presenter.WriteLine("--------------------------------\n"); } }
public IScreen HandleInput(string input) { switch (input) { case "1": return(selectUserScreen.Value); case "2": return(inputUserScreen.Value); case "3": { if (dataBus.GetData <User>(Constants.DataKeys.User) == null) { throw new InvalidInputException("To buy products select the user first"); } return(productsScreen.Value); } default: return(null); } }