public void CanEdit(string OrderDate, string NameInput, string StateInput, string ProductInput, decimal AreaInput, string NameEdit, string StateEdit, string ProductEdit, decimal AreaEdit, bool success)
        {
            OrderManager manager   = OrderManagerFactory.Create();
            DateTime     orderDate = DateTime.Parse(OrderDate);

            PlaceNewOrderResponse response = manager.NewOrder(orderDate, NameInput, StateInput, ProductInput, AreaInput);
            Order toEdit = new Order
            {
                OrderNumber            = response.Order.OrderNumber,
                OrderDate              = response.Order.OrderDate,
                CustomerName           = NameEdit,
                State                  = StateEdit,
                ProductType            = ProductEdit,
                Area                   = AreaEdit,
                CostPerSquareFoot      = 2.25m,
                LaborCostPerSquareFoot = 2.10m,
                MaterialCost           = 450.00m,
                LaborCost              = 420.00m,
                TotalTax               = 54.375m,
                Total                  = 924.375m
            };

            EditExistingOrderResponse editResponse = manager.EditOrder(toEdit);

            OrderLookupResponse loadResponse = manager.OrderLookup(response.Order.OrderNumber, orderDate);

            Assert.AreEqual(success, response.Success);
            Assert.AreEqual(loadResponse.Order.CustomerName, NameEdit);
            Assert.AreEqual(loadResponse.Order.State, StateEdit);
            Assert.AreEqual(loadResponse.Order.ProductType, ProductEdit);
            Assert.AreEqual(loadResponse.Order.Area, AreaEdit);
        }
Beispiel #2
0
        public EditExistingOrderResponse EditOrder(Order editedOrder)
        {
            EditExistingOrderResponse response = new EditExistingOrderResponse();

            bool failState = false;

            if (!failState)
            {
                DeleteOrderResponse deleteResponse = DeleteOrder(editedOrder.OrderDate, editedOrder.OrderNumber);

                if (deleteResponse.Success)
                {
                    response.Order = _orderRepo.EditOrder(editedOrder);
                }
                else
                {
                    failState        = true;
                    response.Message = "Failed to delete previous order";
                }
            }

            if (failState)
            {
                response.Success = false;
            }
            else if (response.Order == null)
            {
                response.Success = false;
                response.Message = "An error occurred while submitting the order";
            }
            else
            {
                response.Success = true;
            }

            return(response);
        }
Beispiel #3
0
        public void Execute()
        {
            OrderManager        manager        = OrderManagerFactory.Create();
            var                 listOfProducts = manager.GetAllProducts();
            IEnumerable <Tax>   listOfStates   = manager.GetAllStates();
            OrderLookupWorkflow lookupWorkflow = new OrderLookupWorkflow();
            Order               orderToDelete  = lookupWorkflow.Execute(true);

            if (orderToDelete != null)
            {
                Order orderToEdit = new Order
                {
                    OrderDate              = orderToDelete.OrderDate,
                    OrderNumber            = orderToDelete.OrderNumber,
                    CustomerName           = orderToDelete.CustomerName,
                    State                  = orderToDelete.State,
                    TaxRate                = orderToDelete.TaxRate,
                    ProductType            = orderToDelete.ProductType,
                    Area                   = orderToDelete.Area,
                    CostPerSquareFoot      = orderToDelete.CostPerSquareFoot,
                    LaborCostPerSquareFoot = orderToDelete.LaborCostPerSquareFoot,
                    MaterialCost           = orderToDelete.MaterialCost,
                    LaborCost              = orderToDelete.LaborCost,
                    TotalTax               = orderToDelete.TotalTax,
                    Total                  = orderToDelete.Total
                };

                bool shouldQuit = false;
                while (!shouldQuit)
                {
                    Console.WriteLine("-----------------------------------------");
                    Console.WriteLine("What would you like to edit?");
                    Console.WriteLine("1. Customer Name\n2. Product Purchased\n3. State\n4. Square Footage Needed\n5. Quit");
                    Console.WriteLine("-----------------------------------------");
                    string fieldToEdit = Console.ReadLine();

                    switch (fieldToEdit)
                    {
                    case "1":
                        EditCustomerName.Execute(orderToEdit);
                        break;

                    case "2":
                        EditProduct.Execute(orderToEdit, listOfProducts);
                        Recalculate(orderToEdit);
                        break;

                    case "3":
                        EditState.Execute(orderToEdit, listOfStates);
                        Recalculate(orderToEdit);
                        break;

                    case "4":
                        EditArea.Execute(orderToEdit);
                        Recalculate(orderToEdit);
                        break;

                    case "5":
                        shouldQuit = true;
                        break;

                    default:
                        Console.WriteLine("You must enter a number to make a selection. Quit to save.");
                        break;
                    }
                }

                EditExistingOrderResponse response = manager.EditOrder(orderToEdit);

                if (response.Success)
                {
                    ConsoleIO.DisplayOrderDetails(response.Order);
                }
                else
                {
                    Console.WriteLine("An error occurred");
                    Console.WriteLine(response.Message);
                }


                Console.WriteLine("\nPress any key to continue");
                Console.ReadKey();
            }
        }