예제 #1
0
 // 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;
 }
예제 #2
0
 public void DisplayUserBuysProduct(BuyTransaction transaction)
 {
     Console.WriteLine($"User: {transaction.userTransaction.userName} confirmed transaction of: {transaction.productItem} transacted total: {transaction.amountTransaction} on the date: {transaction.Date}");
 }
예제 #3
0
 public void DisplayUserBuysProduct(int count, BuyTransaction transaction) // Not implemented
 {
     throw new NotImplementedException();
 }
예제 #4
0
 public void DisplayInsufficientCash(BuyTransaction transanctions)
 {
     Console.WriteLine("Product could not be purchased, your balance is getting low.");
 }
        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;
            }
        }