コード例 #1
0
        public void CanEditOrderTestRepo()
        {
            var productRepo = new ProductFileRepo(Settings.ProductPath);
            var taxRepo     = new TaxFileRepo(Settings.TaxPath);

            var product = productRepo.LoadProducts("tile");
            var tax     = taxRepo.LoadTaxes("MN");

            OrderManager       manager  = new OrderManager(new FileOrderRepo(FilePath, Temp), productRepo, taxRepo);
            AddAnOrderResponse addOrder = manager.AddOrder(new DateTime(2018, 09, 25), "Name Test", tax, product, 100, 0);

            manager.AddToOrderRepo(addOrder.AddedOrder);

            addOrder.AddedOrder.Area         = 250;
            addOrder.AddedOrder.CustomerName = "Edited Name Test";

            manager.EditOrder(addOrder.AddedOrder);

            var orderResponse = manager.OrderLookupDate(addOrder.AddedOrder.OrderDate);
            var editedOrder   = orderResponse.ListOfOrders.SingleOrDefault(o => o.OrderNumber.Equals(addOrder.AddedOrder.OrderNumber));

            Assert.IsNotNull(editedOrder);
            Assert.AreEqual(addOrder.AddedOrder.Area, editedOrder.Area);
            Assert.AreEqual(addOrder.AddedOrder.CustomerName, editedOrder.CustomerName);
        }
コード例 #2
0
        internal static void Execute()
        {
            Console.Clear();
            Console.WriteLine("Add an Order ");
            Console.WriteLine("*************************************");
            Console.WriteLine();

            OrderManager manager = OrderManagerFactory.Create();

            DateTime orderDate    = ConsoleIO.GetFutureDateTime("Enter a valid Date EX: MM/DD/YYYY ");
            string   customerName = ConsoleIO.GetStringFromUser("Customer Name: ");

            TaxLookupResponse taxResponse = manager.LoadTaxes();
            var state = ConsoleIO.GetStateFromUser("State: ", taxResponse.Taxes);

            IEnumerable <Product> GetProducts = manager.GetAllProducts();

            ConsoleIO.ShowListOfProducts(GetProducts);

            ProductLookupResponse productResponse = manager.LoadProducts();
            var     productType = ConsoleIO.GetProductFromUser("Product Type: ", productResponse.Products);
            decimal area        = ConsoleIO.GetAreaFromUser("Area: ");

            Console.WriteLine();
            Console.WriteLine("*************************************");


            AddAnOrderResponse addResponse = manager.AddOrder(orderDate, customerName, state, productType, area, 0);

            if (!addResponse.Success)
            {
                Console.WriteLine("An error has occured");
                Console.WriteLine(addResponse.Message);
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
            else
            {
                Console.WriteLine($"Customer Name: {customerName}, State: {state.Abbreviation}, Product Type: {productType.Name}, Area: {area}");
                Console.WriteLine();
                if (ConsoleIO.GetYesNoAnswerFromUser($"Are you sure you want to add this file?") == "Y")
                {
                    manager.AddToOrderRepo(addResponse.AddedOrder);
                    Console.WriteLine("The Order was successfully added.");
                    Console.WriteLine("Press any key to continue...");
                }
                else
                {
                    Console.WriteLine("Order cancelled. Press any key to continue.");
                    Console.WriteLine("Press any key to continue...");
                }
                Console.ReadLine();
            }
        }
コード例 #3
0
        public AddAnOrderResponse AddOrder(DateTime orderDate, string customerName, Tax state, Product productType, decimal area, int orderNumber)
        {
            AddAnOrderResponse addOrderResponse = new AddAnOrderResponse();

            addOrderResponse.StateTax    = _taxRepository.LoadTaxes(state.Abbreviation);
            addOrderResponse.ProductType = _productRepository.LoadProducts(productType.Name);

            if (addOrderResponse.StateTax == null)
            {
                addOrderResponse.Success = false;
                addOrderResponse.Message = $"{state} is not a state we sell.";
            }
            else if (addOrderResponse.ProductType == null)
            {
                addOrderResponse.Success = false;
                addOrderResponse.Message = $"{productType} is not a valid product type.";
            }
            else
            {
                addOrderResponse.Success = true;
            }

            if (addOrderResponse.Success)
            {
                addOrderResponse.AddedOrder = new Order();

                addOrderResponse.AddedOrder.OrderDate    = orderDate;
                addOrderResponse.AddedOrder.CustomerName = customerName;
                addOrderResponse.AddedOrder.State        = state.Abbreviation;

                addOrderResponse.AddedOrder.TaxRate                = addOrderResponse.StateTax.TaxRate;
                addOrderResponse.AddedOrder.ProductType            = productType.Name;
                addOrderResponse.AddedOrder.CostPerSquareFoot      = addOrderResponse.ProductType.MaterialUnitCost;
                addOrderResponse.AddedOrder.LaborCostPerSquareFoot = addOrderResponse.ProductType.LaborUnitCost;

                addOrderResponse.AddedOrder.Area        = area;
                addOrderResponse.AddedOrder.OrderNumber = orderNumber;
            }

            return(addOrderResponse);
        }
コード例 #4
0
        public void CanAddOrderTest(string customerName, string state, string material, decimal area, bool success)
        {
            var productRepo = new ProductFileRepo(Settings.ProductPath);
            var taxRepo     = new TaxFileRepo(Settings.TaxPath);

            var product = productRepo.LoadProducts(material);
            var tax     = taxRepo.LoadTaxes(state);

            OrderManager manager = new OrderManager(new FileOrderRepo(FilePath, Temp), new ProductFileRepo(Settings.ProductPath), new TaxFileRepo(Settings.TaxPath));

            AddAnOrderResponse addOrder = manager.AddOrder(new DateTime(2020, 09, 25), customerName, tax, product, area, 0);

            manager.AddToOrderRepo(addOrder.AddedOrder);

            var thisOrder = manager.OrderLookupDate(new DateTime(2020, 09, 25));

            Assert.AreEqual(3, thisOrder.ListOfOrders.Count());
            var orderThatIAdded = thisOrder.ListOfOrders.SingleOrDefault(o => o.OrderNumber == addOrder.AddedOrder.OrderNumber);

            Assert.AreEqual(addOrder.AddedOrder.CustomerName, orderThatIAdded.CustomerName);
            Assert.AreEqual(addOrder.AddedOrder.Area, orderThatIAdded.Area);
            Assert.AreEqual(addOrder.AddedOrder.State, orderThatIAdded.State);
        }
コード例 #5
0
        public void CanDeleteOrder()
        {
            var productRepo = new ProductFileRepo(Settings.ProductPath);
            var taxRepo     = new TaxFileRepo(Settings.TaxPath);

            var product = productRepo.LoadProducts("tile");
            var tax     = taxRepo.LoadTaxes("MN");

            OrderManager manager = new OrderManager(new FileOrderRepo(FilePath, Temp), new ProductFileRepo(Settings.ProductPath), new TaxFileRepo(Settings.TaxPath));

            AddAnOrderResponse addResponse = manager.AddOrder(new DateTime(2020, 09, 25), "Name Test", tax, product, 100, 0);

            manager.AddToOrderRepo(addResponse.AddedOrder);

            var thisOrder = manager.OrderLookupDate(new DateTime(2020, 09, 25));

            Assert.AreEqual(3, thisOrder.ListOfOrders.Count());

            manager.DeleteOrder(addResponse.AddedOrder.OrderDate, addResponse.AddedOrder.OrderNumber);

            var afterDeleted = manager.OrderLookupDate(new DateTime(2020, 09, 25));

            Assert.AreEqual(2, afterDeleted.ListOfOrders.Count());
        }