Exemple #1
0
        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();
            }
        }
Exemple #3
0
        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.");
        }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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;
                }
            }
        }
Exemple #8
0
        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;
            }
        }
Exemple #9
0
        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);
            }
        }
Exemple #11
0
        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();
 }