// Enables user to purchase a product public BuyTransaction BuyProduct(User user, Product product, int count) { BuyTransaction buyTransaction = new BuyTransaction(user, product.productPriceTag, product); buyTransaction.executeBuyMethod(user, product); writeTransactionsToLog.WriteTransactionFileToLog(buyTransaction); return buyTransaction; }
public void ParseCommand(string command) { string[] stringParts = command.Split(' '); if (stringParts[0].Contains(':')) { AdminCommands(stringParts); return; } switch (stringParts.Count()) { case 1: foreach (User user in stregsystem.userList) { if (stringParts[0] == user.userName) { Ui.DisplayUserInfo(user); return; } } Ui.DisplayUserNotFound(); break; case 2: // one transaction { User user; Product product; BuyTransaction transaction; int id = 0; Int32.TryParse(stringParts[1], out id); if (id < 1) { Ui.DisplayNotaValidProductId(); } try { user = stregsystem.GetUserByUsername(stringParts[0]); product = stregsystem.GetProductByID(id); transaction = new BuyTransaction(user, product.productPriceTag, product); if (user.Balance > transaction.amountTransaction) { Ui.DisplayUserBuysProduct(transaction as BuyTransaction); } else { Ui.DisplayInsufficientCash(); } user.Balance = transaction.executeBuyMethod(user, product); if (user.Balance < 50) { Ui.Stregsystem_UserBalanceWarning(user, user.Balance); } } catch { Ui.DisplayGeneralError(); return; } break; } case 3: // For some reason this wont allow purchase of more than 2 products at a time { int id = 0; int count = 0; User user; Product product; BuyTransaction transaction; Int32.TryParse(stringParts[2], out id); // Write ID if (id < 1) { Ui.DisplayNotaValidProductId(); } Int32.TryParse(stringParts[1], out count); // When written in prompt stringParts seperates inputs with a space, Write number of items if (count < 1) { Ui.DisplayNotaValidAmountOfProducts(); } try { user = stregsystem.GetUserByUsername(stringParts[0]); // Input of user through GetUserByUsername Method product = stregsystem.GetProductByID(id); // retrieves product id transaction = stregsystem.BuyProduct(user, product, count); // purchase of actual product if (user.Balance > transaction.amountTransaction) { Ui.DisplayUserBuysProduct(transaction as BuyTransaction); // Writes to prompt window if purchase was completed } else { Ui.DisplayInsufficientCash(); // if you dont have enough cash } user.Balance = transaction.executeBuyMethod(user, product); // actually buys the item if (user.Balance < 50) { Ui.Stregsystem_UserBalanceWarning(user, user.Balance); } } catch { Ui.DisplayCommandNotWorking(); // writes to prompt if command wasnt recoqnised return; } break; } default: Ui.DisplayGeneralError(); break; } }