// sends edit or delete responses to Data Layer public AddEditOrDeleteOrderResponse EditOrDeleteOrder(Order order) { AddEditOrDeleteOrderResponse response = new AddEditOrDeleteOrderResponse(); Order validatedOrder = OrderValidation(order); if (validatedOrder == null) { response.Order = null; } else { response.Order = _orderRepository.EditOrDeleteOrder(validatedOrder); } if (response.Order == null) { response.Success = false; response.Message = $"The order wasn't able to be edited."; } else { response.Success = true; } return(response); }
// sets the edit or delete response into motion public AddEditOrDeleteOrderResponse EditOrDeleteOrderSelection(string orderDate, string orderNumber) { AddEditOrDeleteOrderResponse response = new AddEditOrDeleteOrderResponse(); DateValidation(orderDate); int orderNumberInt = IntValidation(orderNumber); if ((Date.OrderDate.ToString() == Date.DATE_TIME_ORIGIN) || (orderNumberInt == 0)) { response.Order = null; } else { response.Order = _orderRepository.EditOrDeleteOrderSelection(Date.OrderDate, orderNumberInt); } if (response.Order == null) { response.Success = false; response.Message = $"{orderDate} or {orderNumber} is not valid"; } else { response.Success = true; } return(response); }
// sets the add edit or delete response into motion for adding an order public AddEditOrDeleteOrderResponse AddOrder(string orderDate, Order order) { AddEditOrDeleteOrderResponse response = new AddEditOrDeleteOrderResponse(); DateValidation(orderDate); Order validatedOrder = OrderValidation(order); if ((Date.OrderDate.ToString() == Date.DATE_TIME_ORIGIN) || (validatedOrder == null)) { response.Order = null; } else { response.Order = _orderRepository.AddOrder(Date.OrderDate, validatedOrder); } if (response.Order == null) { response.Success = false; response.Message = "The order could not be added."; } else { response.Success = true; } return(response); }
[TestCase("1/3/2020 12:00:00 AM", "0", false)] // account exists and can be found public void EditOrDeleteOrderSelectionTest(string date, string orderNumber, bool expectedResult) { AccountManager manager = AccountManagerFactory.Create(); AddEditOrDeleteOrderResponse response = manager.EditOrDeleteOrderSelection(date, orderNumber); Assert.AreEqual(expectedResult, response.Success); }
[TestCase("1/1/2020", "Bi*ll", "MI", "Tile", 1000, false)] //Name not in proper format public void AddOrderTest(string date, string name, string state, string productType, decimal area, bool expectedResult) { Order order = new Order { CustomerName = name, State = state, ProductType = productType, Area = area }; AccountManager manager = AccountManagerFactory.Create(); AddEditOrDeleteOrderResponse response = manager.AddOrder(date, order); Assert.AreEqual(expectedResult, response.Success); }
public void Execute() { AccountManager manager = AccountManagerFactory.Create(); Console.Clear(); Console.WriteLine("Add an Order"); Console.WriteLine($"{Menu.stars}"); // Validates user input and parses to DateTime do { // resets date Date.OrderDate = Convert.ToDateTime(EditOrDeleteOrderWorkflow.DATE_TIME_ORIGIN); try { Date.OrderDate = DateTime.Parse(ConsoleInput.ConsoleInput.GetStringFromUser(Date.DatePrompt)); } catch { Console.WriteLine("Date must be a legitimate date in the future."); } } while (Date.OrderDate.Date.ToString() == EditOrDeleteOrderWorkflow.DATE_TIME_ORIGIN); Order order = new Order(); // Validates Customer Name do { order.CustomerName = ConsoleInput.ConsoleInput.GetStringFromUser("Enter customer's name (a-z 0-9 , or . are excepted): "); } while (!(Regex.IsMatch(order.CustomerName, @"^[a-zA-Z0-9., ]+$"))); // Validates State Abbreviation do { order.State = ConsoleInput.ConsoleInput.GetStringFromUser("Enter the state abbreviation (PA, OH, MI, or IN): ").ToUpper(); } while (!(order.State == Taxes.statePA || order.State == Taxes.stateOH || order.State == Taxes.stateMI || order.State == Taxes.stateIN)); // Validates Product Type do { order.ProductType = ConsoleInput.ConsoleInput.GetStringFromUser("Enter a product ( Carpet, Laminate, Tile, or Wood ): "); } while (!(order.ProductType.ToUpper() == Products.typeCarpet || order.ProductType.ToUpper() == Products.typeLaminate || order.ProductType.ToUpper() == Products.typeTile || order.ProductType.ToUpper() == Products.typeWood)); // Validates Order Area order.Area = ConsoleInput.ConsoleInput.GetDecimalFromUser("Enter the area: ", Order.MIN_AREA, EditOrDeleteOrderWorkflow.MAX_INT); // Sends response to Data layer to add an order to an existing file or to create a new file and add it there AddEditOrDeleteOrderResponse response = manager.AddOrder(Date.OrderDate, order); if (response.Success) { ConsoleIO.DisplayOrderDetails(response.Order); } else { Console.WriteLine("An error occurred: "); Console.WriteLine(response.Message); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
public void Execute() { AccountManager manager = AccountManagerFactory.Create(); Console.Clear(); Console.WriteLine("Display an Order"); Console.WriteLine($"{Menu.stars}"); // Validates Date and parses to DateTime do { // resets date Date.OrderDate = Convert.ToDateTime(DATE_TIME_ORIGIN); try { Date.OrderDate = DateTime.Parse(ConsoleInput.ConsoleInput.GetStringFromUser(Date.DatePrompt)); } catch { Console.WriteLine("Date must be a legitimate date in the future."); } } while (Date.OrderDate.Date.ToString() == DATE_TIME_ORIGIN); // Sends response to the Data Layer to see if the file exists to be edited or deleted OrderLookupResponse displayListResponse = manager.DisplayOrder(Date.OrderDate); // Outputs what is returned from Data Layer ConsoleIO.DisplayOrderListDetails(displayListResponse.Order); int orderNumber = ConsoleInput.ConsoleInput.GetIntFromUser("Enter the order number of the order you would like to edit or delete: ", 1, MAX_INT); // Sends another response to edit a certain field or delete an order AddEditOrDeleteOrderResponse responseCheck = manager.EditOrDeleteOrderSelection(Date.OrderDate, orderNumber); if (responseCheck.Success) { Console.WriteLine($"1. {responseCheck.Order.CustomerName}"); Console.WriteLine($"2. {responseCheck.Order.State}"); Console.WriteLine($"3. {responseCheck.Order.ProductType}"); Console.WriteLine($"4. {responseCheck.Order.Area}"); Console.WriteLine("5. Delete Order"); int editNumber = ConsoleInput.ConsoleInput.GetIntFromUser("Enter the item you would like to edit or hit 5 to delete an order: ", 1, _fiveForDelete); // Validates the user's responses and assigns them to the appropriate Order properties switch (editNumber) { case 1: do { responseCheck.Order.CustomerName = ConsoleInput.ConsoleInput.GetStringFromUser("Enter customer's name (a-z 0-9 , or . are excepted): "); } while (!(Regex.IsMatch(responseCheck.Order.CustomerName, @"^[a-zA-Z0-9., ]+$"))); break; case 2: do { responseCheck.Order.State = ConsoleInput.ConsoleInput.GetStringFromUser("Enter the state abbreviation (PA, OH, MI, or IN): ").ToUpper(); } while (!(responseCheck.Order.State == Taxes.statePA || responseCheck.Order.State == Taxes.stateOH || responseCheck.Order.State == Taxes.stateMI || responseCheck.Order.State == Taxes.stateIN)); break; case 3: do { responseCheck.Order.ProductType = ConsoleInput.ConsoleInput.GetStringFromUser("Enter a product ( Carpet, Laminate, Tile, or Wood ): "); } while (!(responseCheck.Order.ProductType.ToUpper() == Products.typeCarpet || responseCheck.Order.ProductType.ToUpper() == Products.typeLaminate || responseCheck.Order.ProductType.ToUpper() == Products.typeTile || responseCheck.Order.ProductType.ToUpper() == Products.typeWood)); break; case 4: responseCheck.Order.Area = ConsoleInput.ConsoleInput.GetDecimalFromUser("Enter your changes: ", Order.MIN_AREA, MAX_INT); break; case 5: responseCheck.Order.CustomerName = $"{responseCheck.Order.CustomerName} DELETE"; break; default: return; } // Displays what you are editing or deleting ConsoleIO.DisplayOrderDetails(responseCheck.Order); // Prompts you to confirm string response; do { response = ConsoleInput.ConsoleInput.GetStringFromUser("Would you like to continue with the changes above? (Yes or No) ").ToUpper(); } while (response != "YES" && response != "NO"); // If yes then send to the Data Layer to edit or delete if (response == "YES") { AddEditOrDeleteOrderResponse responseEdit = manager.EditOrDeleteOrder(responseCheck.Order); if (responseEdit.Success) { ConsoleIO.DisplayOrderDetails(responseEdit.Order); } else { Console.WriteLine("An error occurred: "); Console.WriteLine(responseEdit.Message); } } } else { Console.WriteLine("An error occurred: "); Console.WriteLine(responseCheck.Message); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }