public void AddOrderTest(int OrderNumber, string CustomerName, string State, decimal TaxRate, string ProductType, decimal Area, decimal CostPerSquareFoot, decimal LaborCostPerSquareFoot, decimal MaterialCost, decimal LaborCost, decimal Tax, decimal Total, string path) { DataManager manager = DataManagerFactory.Create(); DateTime OrderDate = new DateTime(2020, 6, 1); FileLookupRequest request = manager.FileLookup(OrderDate); Assert.AreEqual(path, request.path); Assert.IsFalse(request.success); Assert.AreEqual(null, request.orders); Order o = new Order(); o.OrderNumber = OrderNumber; o.CustomerName = CustomerName; o.State = State; o.TaxRate = TaxRate; o.ProductType = ProductType; o.Area = Area; o.CostPerSquareFoot = CostPerSquareFoot; o.LaborCostPerSquareFoot = LaborCostPerSquareFoot; o.MaterialCost = MaterialCost; o.LaborCost = LaborCost; o.Tax = Tax; o.Total = Total; manager.FileSave(o, request.path); request = manager.FileLookup(OrderDate); Assert.IsTrue(request.success); Assert.AreEqual(1, request.orders.Count); Assert.AreEqual(CustomerName, request.orders[0].CustomerName); Assert.AreEqual(Total, request.orders[0].Total); }
public void Execute() { DataManager repository = DataManagerFactory.Create(); Console.Clear(); DateTime targetDate = ConsoleIO.GetDateTime("Enter the date of the order you'd like to remove:"); if (!repository.Orders.ContainsKey(targetDate)) { Console.WriteLine($"No orders were found on {targetDate.ToShortDateString()}"); Console.Write("Press any key to return to main menu..."); Console.ReadKey(); return; } int orderNumber = ConsoleIO.GetInteger("Enter the order number of the order to remove:"); OrderLookupResponse result = repository.LookupOrder(targetDate, orderNumber); if (result.Success) { Console.WriteLine(); ConsoleIO.DisplayOrderDetails(result.Order); if (ConsoleIO.GetBool("Would you like to delete this order?", "Y", "N", false)) { repository.RemoveOrder(targetDate, orderNumber); } } else { Console.WriteLine(result.Message); Console.Write("Press any key to return to main menu..."); Console.ReadKey(); } }
public void RemoveOrderTest() { DataManager manager = DataManagerFactory.Create(); DateTime OrderDate = new DateTime(2020, 6, 1); FileLookupRequest request = manager.FileLookup(OrderDate); Assert.AreEqual(1, request.orders.Count); Order o = request.orders[0]; manager.FileRemove(request.orders, o, request.path); request = manager.FileLookup(OrderDate); Assert.AreEqual(null, request.orders); }
public void Execute() { DataManager manager = DataManagerFactory.Create(); DateTime OrderDate = ConsoleIO.RequestAndValidateDate("edit"); FileLookupRequest request = manager.FileLookup(OrderDate); if (!request.success) { Console.WriteLine("Error: No orders found for that date."); Console.WriteLine(); return; } string path = request.path; int OrderNumber = ConsoleIO.RequestAndValidateOrderNumber(); List <Order> orders = request.orders; Order o; foreach (Order OrderToCheck in orders) { if (OrderToCheck.OrderNumber == OrderNumber) { o = OrderToCheck; ConsoleIO.PrintOrder(o, OrderDate); EditOrderInfo(o); ConsoleIO.PrintOrder(o, OrderDate); if (ConsoleIO.ConfirmEditOrRemoveOrder("save")) { manager.FileSave(o, OrderDate.ToString("MMddyyyy"), path); Console.WriteLine("Order saved."); return; } else { Console.WriteLine("Order not saved."); return; } } else { continue; } } Console.WriteLine("There is no order with that order number."); }
public void Execute() { DataManager repository = DataManagerFactory.Create(); Console.Clear(); // date DateTime date = ConsoleIO.GetDateTime("Order date (must be a future date):", false); Console.WriteLine(); // name Console.WriteLine("Customer name:"); Console.Write("> "); string name = Console.ReadLine(); Console.WriteLine(); // state State state = GetStateFrom(repository.States); if (state == null) { return; } Console.WriteLine(); // product Product product = GetProductsFrom(repository.Products); Console.WriteLine(); // area decimal area = ConsoleIO.GetDecimal("Floor area (square feet):"); Console.WriteLine(); // summary Console.Clear(); Order order = new Order(name, state, product, area); ConsoleIO.DisplayOrderDetails(order); if (ConsoleIO.GetBool("Would you like to save this order?", "Y", "N", false)) { repository.AddOrder(date, order); } }
public void EditOrderTest() { DataManager manager = DataManagerFactory.Create(); DateTime OrderDate = new DateTime(2020, 6, 1); FileLookupRequest request = manager.FileLookup(OrderDate); Assert.AreEqual(1, request.orders.Count); Assert.AreEqual("Andrew", request.orders[0].CustomerName); Order o = request.orders[0]; o.CustomerName = "Galvin"; manager.FileSave(o, request.path); request = manager.FileLookup(OrderDate); Assert.AreEqual(1, request.orders.Count); Assert.AreEqual("Galvin", request.orders[0].CustomerName); }
public static void Start() { while (true) { Console.Clear(); var s = DataManagerFactory.Create().Orders; Console.WriteLine("Flooring Program"); Console.WriteLine(); Console.WriteLine("1. Display Orders"); Console.WriteLine("2. Add an Order"); Console.WriteLine("3. Edit an Order"); Console.WriteLine("4. Remove an Order"); Console.WriteLine("5. Quit"); Console.Write("> "); string input = Console.ReadLine(); switch (input) { case "1": new DisplayOrdersView().Execute(); break; case "2": new AddOrderView().Execute(); break; case "3": new EditOrderView().Execute(); break; case "4": new RemoveOrderView().Execute(); break; case "5": return; } } }
public void Execute() { DataManager manager = DataManagerFactory.Create(); DateTime OrderDate = ConsoleIO.RequestAndValidateDate("display"); while (true) { FileLookupRequest request = manager.FileLookup(OrderDate); if (!request.success) { Console.WriteLine(request.message); return; } for (int i = 0; i < request.orders.Count(); i++) { ConsoleIO.PrintOrder(request.orders[i], OrderDate); } Console.WriteLine(); return; } }
public void Execute() { DataManager repository = DataManagerFactory.Create(); Console.WriteLine(); Console.WriteLine(DIVIDER); foreach (var key in repository.Orders.Keys) { string dateString = key.ToShortDateString(); Console.WriteLine($"{{0, {(DIVIDER.Length / 2) + (dateString.Length / 2)}}}", dateString); var collection = repository.Orders[key]; foreach (var order in collection) { Console.WriteLine(DIVIDER); ConsoleIO.DisplayOrderDetails(order); } Console.WriteLine(DIVIDER); } Console.Write("Press any key to continue..."); Console.ReadKey(); }
public void Execute() { DataManager repository = DataManagerFactory.Create(); Console.Clear(); DateTime targetDate = ConsoleIO.GetDateTime("Enter the date of the order you'd like to edit:"); if (!repository.Orders.ContainsKey(targetDate)) { Console.WriteLine($"No orders were found on {targetDate.ToShortDateString()}"); Console.Write("Press any key to return to main menu..."); Console.ReadKey(); return; } int orderNumber = ConsoleIO.GetInteger("Enter the order number of the order to edit:"); OrderLookupResponse result = repository.LookupOrder(targetDate, orderNumber); if (!result.Success) { Console.WriteLine(result.Message); Console.Write("Press any key to return to main menu..."); Console.ReadKey(); return; } Console.WriteLine(); // customer name Console.WriteLine($"Customer name ({result.Order.CustomerName}):"); Console.Write("> "); string name = Console.ReadLine(); Console.WriteLine(); // state Console.WriteLine($"State ({result.Order.State}):"); Console.Write("> "); string stateText; State state = null; do { stateText = Console.ReadLine(); if (stateText != "") { state = (from s in repository.States where s.StateAbbreviation == stateText || s.StateName == stateText select s).FirstOrDefault(); if (state == null) { Console.WriteLine($"We do not do business in {stateText}."); } } else { state = (from s in repository.States where s.StateAbbreviation == result.Order.State select s).FirstOrDefault(); } }while (state == null); Console.WriteLine(); // product Product product = null; do { for (int i = 0; i < repository.Products.Length; i++) { Console.WriteLine($"{i + 1})"); ConsoleIO.DisplayProductDetails(repository.Products[i]); Console.WriteLine(); } Console.WriteLine($"Enter a product by number ({result.Order.ProductType}):"); Console.Write("> "); if (int.TryParse(Console.ReadLine(), out int selection)) { if (selection <= repository.Products.Length && selection >= 0) { product = repository.Products[selection - 1]; } else { Console.WriteLine($"Invalid selection: {selection}"); Console.WriteLine($"Expected a number in the range 1-{repository.Products.Length}"); } } else { product = (from p in repository.Products where p.ProductType == result.Order.ProductType select p).FirstOrDefault(); } }while (product == null); Console.WriteLine(); // area decimal?area = null; do { Console.WriteLine($"Floor area ({result.Order.Area}):"); Console.Write("> "); string areaText = Console.ReadLine(); if (areaText == "") { area = result.Order.Area; } else if (decimal.TryParse(areaText, out decimal value)) { area = value; } }while (!area.HasValue); Console.WriteLine(); // summary Console.Clear(); Order order = new Order(name == "" ? result.Order.CustomerName : name, state, product, area.Value); ConsoleIO.DisplayOrderDetails(order); if (ConsoleIO.GetBool("Would you like to save this order?", "Y", "N", false)) { repository.UpdateOrder(order, targetDate, orderNumber); } }
public void Execute() { DataManager manager = DataManagerFactory.Create(); while (true) { DateTime OrderDate = ConsoleIO.RequestAndValidateDate("add"); if (OrderDate < DateTime.Now) { Console.WriteLine("Date must be in the future."); continue; } Order o = new Order(); Console.WriteLine("Customer Name?"); o.CustomerName = Console.ReadLine(); while (true) { Console.WriteLine("State?"); string UserState = Console.ReadLine(); bool StateOK = Controllers.FindStateInTaxFile(o, UserState); if (!StateOK) { continue; } break; } while (true) { ProductTypeRequest productRequest = Controllers.ShowProductTypes(); if (!productRequest.success) { continue; } while (true) { if (!GetProductType(o, productRequest.rows)) { continue; } break; } break; } while (true) { Console.WriteLine("Area?"); string UserArea = Console.ReadLine(); bool AreaOK = Controllers.CheckUserArea(o, UserArea); if (!AreaOK) { continue; } break; } Controllers.CalculateRestOfOrder(o); ConsoleIO.PrintOrder(o, OrderDate); Console.WriteLine("Do you want to add this order? Y/N"); string AddOrNot = Console.ReadLine().ToUpper(); if (AddOrNot[0] != 'Y') { break; } FileLookupRequest request = manager.FileLookup(OrderDate); if (!request.success) { o.OrderNumber = 1; manager.FileSave(o, OrderDate.ToString("MMddyyyy"), request.path); Console.WriteLine($"Order file created for {OrderDate:MM/dd/yyyy}."); break; } else { List <Order> Orders = request.orders; o.OrderNumber = Orders[(Orders.Count() - 1)].OrderNumber + 1; manager.FileSave(o, OrderDate.ToString(), request.path); Console.WriteLine($"Order added to file for {OrderDate:MM/dd/yyyy}."); break; } } }
public DvdController() { _dvdRepository = DataManagerFactory.Create(); }