public void Welcome() { Console.WriteLine("Tindahan ni Aling Nena"); Console.WriteLine("Welcome BacK! What would you like to view?"); Console.WriteLine(" [0] Location \n [1] Customer \n [2] Orders \n [3] Exit"); string input = Console.ReadLine(); switch (input) { case "0": //go to the Locations UI AdminLocation al = new AdminLocation(); al.Menu(); break; case "1": //go to customer UI AdminCustomer ac = new AdminCustomer(); ac.MainMenu(); break; case "2": //go to order UI AdminOrder ao = new AdminOrder(); ao.Menu(); break; case "3": //go to exit ExitMenu exit = new ExitMenu(); exit.Exit(); break; default: //error handler ErrorHandler err = new ErrorHandler(); err.InvalidInputMsg(); Log.Error("Invalid Input."); Welcome(); break; } }
///<summary> ///Method that returns a customer based on user input /// The customer is validated by taking valid customers via data handler that match conditions given by the user and asking the user to choose among them ///</summary> private Customer EnterCustomerDetails() { string choice; try { AdminCustomer ac = new AdminCustomer(); List <Customer> choices = ac.SearchCustomer(); do { Console.WriteLine("Choose customer "); choice = Console.ReadLine(); } while (ErrorHandler.InvalidIntInput(choice)); return(choices[int.Parse(choice)]); } catch (CustomerException ex) { Console.WriteLine(ex.Message); Log.Error(ex.Message); EnterCustomerDetails(); } catch (NotImplementedException ex) { Console.WriteLine(ex.Message); Log.Error(ex.Message); EnterCustomerDetails(); } catch (FormatException ex) { Console.WriteLine(ex.Message); Log.Error(ex.Message); EnterCustomerDetails(); } catch (CustomerNotFoundException ex) { Console.WriteLine(ex.Message); Log.Error(ex.Message); Menu(); } catch (Exception ex) { Console.WriteLine(ex.Message); Log.Error(ex.Message); string input; do { Console.WriteLine("Try Again? \n Y^(Yes) N^(No)"); input = Console.ReadLine(); } while (ErrorHandler.InvalidInput(input)); switch (input) { case "Y": EnterCustomerDetails(); break; case "N": Menu(); break; default: break; } } return(new Customer()); }
///<summary> ///Method to place order by passing business logic order object to data handler ///</summary> private void AddOrder() { OrderHandler oh = new OrderHandler(); LocationHandler lh = new LocationHandler(); Customer c = new Customer(); Console.WriteLine("New Customer? \n Y^(YES) N^(NO))"); string input = Console.ReadLine(); switch (input) { case "Y": AdminCustomer ac = new AdminCustomer(); c = ac.AddNewCustomer(); break; case "N": c = EnterCustomerDetails(); break; default: ErrorHandler err = new ErrorHandler(); err.InvalidInputMsg(); AddOrder(); break; } Location l = EnterLocationDetails(); string choice; List <Inventory> custOrder = new List <Inventory>(); do { Console.WriteLine("Choose Product to Order (Enter Index Number):"); List <Inventory> availInvent = lh.GetAvailInventory(l); int j = 0; foreach (Inventory i in availInvent) { Console.WriteLine("[" + j + "] " + " Name: " + i.Prod.Name + "\n Price: " + i.Prod.Price + "\n Remaining Stock: " + i.Stock); j++; } input = Console.ReadLine(); Console.WriteLine("Enter Quantity: "); string amount = Console.ReadLine(); try { lh.UpdateInventory(new Inventory() { Prod = availInvent[int.Parse(input)].Prod, Stock = int.Parse(amount) }, l); } catch (InsufficientStockException ex) { Console.WriteLine(ex.Message); choice = ""; Log.Error("Insufficient Stock Exception. User tried to buy products more than available inventory"); continue; } catch (FormatException ex) { Console.WriteLine(ex.Message); choice = ""; Log.Error("Format Exception. User tried to input invalid format"); continue; } catch (ArgumentOutOfRangeException ex) { Console.WriteLine(ex.Message); choice = ""; Log.Error(ex.Message); continue; } catch (InvalidStockException ex) { Console.WriteLine(ex.Message); choice = ""; Log.Error(ex.Message); continue; } custOrder.Add(new Inventory() { Prod = availInvent[int.Parse(input)].Prod, Stock = int.Parse(amount) }); do { Console.WriteLine("Would you like to order another product? \n N^(NO) Y^(YES)"); choice = Console.ReadLine(); } while (ErrorHandler.InvalidInput(choice)); } while (choice != "N"); Orders o = new Orders() { Cust = c, Stor = l, Date = DateTime.Now, CustOrder = custOrder }; oh.AddOrder(o); oh.PrintOrderDetails(o); Log.Information("Order Added"); Log.Information($"Order was made by customer {c.FirstName} {c.LastName} at {l.BranchName} store"); Menu(); }