public void BuyProduct(User currentUser, Product chosenProduct) { BuyTransaction transaction = new BuyTransaction(currentUser, chosenProduct); ExecuteTransaction(transaction); }
public void ParseCmd(string userInput) { string[] cmdSplitter = userInput.Split(' '); if (cmdSplitter.Count() == 0) { //Kommer brugeren til at trykke enter uden at have skrevet noget, sker der intet. } else if (cmdSplitter[0].StartsWith(":")) { var dictionaryValue = _adminCmd.FirstOrDefault(dv => dv.Key.Equals(cmdSplitter[0])); if (dictionaryValue.Value != null) { _adminCmd[dictionaryValue.Key].Invoke(cmdSplitter); } else { _CLI.DisplayAdminCommandNotFoundMessage(userInput); } } else { if (cmdSplitter.Count() == 1) { _CLI.DisplayUserInfo(cmdSplitter[0]); } else if (cmdSplitter.Count() == 2) { bool isDigitOnly = true; foreach (char checker in cmdSplitter[1]) { if (checker < '0' || checker > '9') isDigitOnly = false; } if (isDigitOnly) _CLI.DisplayUserBuysProduct(cmdSplitter[0], Convert.ToUInt32(cmdSplitter[1])); else _CLI.DisplayProductIDNotNumber(cmdSplitter[1]); } else if (cmdSplitter.Count() == 3) { bool isDigitOnly = true; foreach (char checker in cmdSplitter[1]) { if (checker < '0' || checker > '9') isDigitOnly = false; } if (!isDigitOnly) _CLI.DisplayProductIDNotNumber(cmdSplitter[1]); foreach (char checker in cmdSplitter[2]) { if (checker < '0' || checker > '9') isDigitOnly = false; } if (!isDigitOnly) _CLI.DisplayProductIDNotNumber(cmdSplitter[2]); foreach (User user in _lineSystem.userList) { if (user.userName == cmdSplitter[0]) { foreach (Product product in _lineSystem.productList) { if (product.productID == Convert.ToUInt32(cmdSplitter[2])) { if (user.balance < (product.price * Convert.ToInt32(cmdSplitter[1]))) { throw new InsufficientCreditsException("Du har ikke råd til denne vare. Indsæt venligst flere penge på din konto og prøv igen."); } for (int i = 0; i < Convert.ToInt32(cmdSplitter[1]); ++i) { _lineSystem.BuyProduct(user, product); } BuyTransaction buyTransaction = new BuyTransaction(user, product); _CLI.DisplayUserBuysProduct(user.userName, Convert.ToInt32(cmdSplitter[1]), product); } } } } } else { _CLI.DisplayTooManyArgumentsError(); } } }