public void Execute()
        {
            bool isValidDate = false;

            Console.Clear();
            while (isValidDate == false)
            {
                dateString      = io.GetDateFromUser("Please enter date of file to load.");
                dateTime        = DateTime.ParseExact(dateString, "MMddyyyy", CultureInfo.GetCultureInfo("en-us"));
                displayResponse = manager.DisplayOrders(dateString);


                if (displayResponse.Success == true)
                {
                    foreach (var order in displayResponse.Orders)
                    {
                        io.DisplayOrder(order, dateTime);
                    }
                    isValidDate = true;
                }
            }

            int orderNumber = io.GetIntFromUser("Please enter order number to remove: ");

            bool isRemove = false;

            while (isRemove == false)
            {
                foreach (var order in displayResponse.Orders)
                {
                    if (orderNumber == order.OrderNumber)
                    {
                        RemoveOrder(order);
                        isRemove = true;
                        break;
                    }
                    else
                    {
                        Console.WriteLine("Order not found. Please enter valid order number.");
                    }
                }
            }
        }
Exemplo n.º 2
0
        public void Execute()
        {
            OrderManager manager = OrderManagerFactory.Create();

            Console.Clear();

            Console.WriteLine("Display an order");
            Console.WriteLine("------------------------");
            string date = io.GetDateFromUser("Please provide a date");
            DisplayOrderResponse response = manager.LoadOrders(date);

            foreach (FlooringOrder order in response.Orders)
            {
                io.DisplayOrderDetails(order);
            }

            //no matter what date, it shows the hardcoded information from the test file

            Console.WriteLine("\nPress Enter to continue...");
            Console.ReadLine();
        }
Exemplo n.º 3
0
        private void EditOrderDate()
        {
            bool isValidDate = false;

            Console.Clear();
            while (isValidDate == false)
            {
                userDate        = io.GetDateFromUser("Please enter date of file to load.");
                dateTime        = DateTime.ParseExact(userDate, "MMddyyyy", CultureInfo.GetCultureInfo("en-us"));
                displayResponse = manager.DisplayOrders(userDate);


                if (displayResponse.Success == true)
                {
                    foreach (var order in displayResponse.Orders)
                    {
                        io.DisplayOrder(order, dateTime);
                    }
                    isValidDate = true;
                }
            }
        }
Exemplo n.º 4
0
        private void NewOrderDate()
        {
            bool isValidDate = false;

            while (isValidDate == false)
            {
                //get date, verify format and generate string of formatted date
                dateString = io.GetDateFromUser("Please enter date for order: ");
                //make sure the date string (as a DateTime) is after today
                dateTime = DateTime.ParseExact(dateString, "MMddyyyy", CultureInfo.GetCultureInfo("en-us"));

                if (dateTime < DateTime.Today)
                {
                    Console.WriteLine("Date must be after today.");
                }
                else
                {
                    isValidDate = true;
                }
            }
            //next order number, need date/load for this
            orderNumberResponse = manager.NextOrderNumber(dateString);
        }
        public void Execute()
        {
            Console.Clear();
            OrderManager manager = OrderManagerFactory.Create();

            //****display available files to load****
            io.DisplayFiles(manager.FileList());
            //get string, verify date range, get back formatted string
            userDate = io.GetDateFromUser("Please enter date of file to load.");
            DisplayOrdersResponse response = manager.DisplayOrders(userDate);
            DateTime dateTime = DateTime.ParseExact(userDate, "MMddyyyy", CultureInfo.GetCultureInfo("en-us"));

            //if order found on this date, display order(s)
            if (response.Success == true)
            {
                foreach (var order in response.Orders)
                {
                    io.DisplayOrder(order, dateTime);
                }
            }

            Console.WriteLine("Press any key to return to main menu.");
            Console.ReadLine();
        }
Exemplo n.º 6
0
        public void Execute()
        {
            OrderManager manager = OrderManagerFactory.Create();

            Console.Clear();
            Console.WriteLine("Edit an order");
            Console.WriteLine("------------------------");
            bool     isValidDate = false;
            DateTime orderDate   = new DateTime();
            string   date1       = "";

            while (isValidDate == false)
            {
                date1 = io.GetDateFromUser("Please provide a date");

                orderDate = DateTime.ParseExact(date1, "MMddyyyy", CultureInfo.GetCultureInfo("en-us"));

                if (orderDate <= DateTime.Today)
                {
                    Console.WriteLine("Date must be later than today");
                }
                else
                {
                    isValidDate = true;
                }
            }

            DisplayOrderResponse response = manager.LoadOrders(date1);

            foreach (FlooringOrder order in response.Orders)
            {
                io.DisplayOrderDetails(order);
            }

            int  ordernumber   = -1;
            bool isValidNumber = false;

            while (isValidNumber == false)
            {
                string orderstring = io.GetStringFromUser("Please enter an order number.");
                if (!int.TryParse(orderstring, out ordernumber))
                {
                    Console.WriteLine("This did not work, please enter a number");
                }
                else
                {
                    foreach (var item in response.Orders)
                    {
                        if (item.OrderNumber == ordernumber)
                        {
                            newOrder = item;
                        }
                    }
                    isValidNumber = true;
                }
            }

            Console.WriteLine("");
            string newName = PromptUser("What would you like to change your name to?");

            if (newName != "")
            {
                while (!newName.All(c => Char.IsLetterOrDigit(c) || c == ',' || c == '_' || c == '.'))
                {
                    Console.WriteLine("Names must include either letters, numbers, spaces, periods, or commas (or any combonation thereof)");
                    newName = PromptUser("What is your name?");
                }
                newOrder.CustomerName = newName;
            }

            TaxStateResponse taxResponse = uo.LoadTax();
            FlooringTax      orderTax    = new FlooringTax();
            bool             isValidTax  = false;

            while (isValidTax == false)
            {
                foreach (FlooringTax tax in taxResponse.TaxRate)
                {
                    Console.WriteLine("  " + (taxResponse.TaxRate.IndexOf(tax) + 1) + ". " + tax.StateAbbreviation);
                }
                Console.WriteLine("Order is currently in " + newOrder.State);
                string newState = PromptUser("Enter a new state or press enter to continue.");
                if (newState != "")
                {
                    if (int.TryParse(newState, out int nation))
                    {
                        if (nation > 0 && nation <= taxResponse.TaxRate.Count)
                        {
                            newOrder.State   = taxResponse.TaxRate[nation - 1].StateAbbreviation;
                            newOrder.TaxRate = taxResponse.TaxRate[nation - 1].TaxRate;
                            isValidTax       = true;
                        }
                    }
                    else
                    {
                        Console.WriteLine("That state isn't in our region yet.");
                    }
                }
                else
                {
                    isValidTax = true;
                }
            }

            List <FlooringProduct> ProductList  = yo.LoadProducts();
            FlooringProduct        orderProduct = new FlooringProduct();
            bool isValidProduct = false;

            while (isValidProduct == false)
            {
                foreach (FlooringProduct prod in ProductList)
                {
                    Console.Write("  " + (ProductList.IndexOf(prod) + 1) + ". " + prod.ProductType);
                    Console.Write("   Cost per sqft $" + prod.CostPerSquareFoot);
                    Console.Write("   Cost for Labor per sqft $" + prod.LaborCostPerSquareFoot);
                    Console.WriteLine("\n");
                }
                Console.WriteLine("You have already chosen " + newOrder.ProductType);
                string newProduct = PromptUser("Please specifiy a different product or press enter to continue");
                if (newProduct != "")
                {
                    if (int.TryParse(newProduct, out int supply))
                    {
                        if (supply > 0 && supply <= ProductList.Count)
                        {
                            newOrder.ProductType            = ProductList[supply - 1].ProductType;
                            newOrder.LaborCostPerSquareFoot = ProductList[supply - 1].LaborCostPerSquareFoot;
                            newOrder.CostPerSquareFoot      = ProductList[supply - 1].CostPerSquareFoot;
                            isValidProduct = true;
                        }
                    }
                    else
                    {
                        Console.WriteLine("That product isn't available yet.");
                    }
                }
                else
                {
                    isValidProduct = true;
                }
            }

            decimal area1       = 0;
            bool    isValidArea = false;

            while (isValidArea == false)
            {
                area1 = newOrder.Area;
                string area = PromptUser("Please enter a new area or press enter to continue");

                if (area != "")
                {
                    if (decimal.TryParse(area, out area1))
                    {
                        if (area1 < 100)
                        {
                            Console.WriteLine("You must enter a positive amount above 100");
                            Console.WriteLine("Please enter a valid square footage.");
                        }
                        else
                        {
                            newOrder.Area = area1;
                            isValidArea   = true;
                        }
                    }
                }
                else
                {
                    isValidArea = true;
                }
            }

            //ask user for order number
            //if order exisits - ask user for each piece of order data && display exisiting data
            //if user presses Enter key without entering data - leave existing data in place

            //Only CustomerName, State, ProductType, Area can be changed
            //Order date may NOT change

            Console.Clear();
            io.DisplayOrderDetails(newOrder);

            bool isSave = false;

            while (isSave == false)
            {
                string place = PromptUser("Would you like to place this order? Please enter yes or no");
                if (place.ToLower() == "yes")
                {
                    EditOrderResponse editResponse = manager.EditOrder(date1, newOrder);  //still saving the new file even if selecting no
                    isSave = true;
                    // save final to file with approp date
                }
                else if (place.ToLower() == "no")
                {
                    isSave = true;
                    //return to main menu
                }
                else
                {
                    Console.WriteLine("Please enter yes or no");
                }
            }
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }
Exemplo n.º 7
0
        public void Execute()
        {
            OrderManager manager = OrderManagerFactory.Create();

            Console.Clear();
            Console.WriteLine("Remove an order");
            Console.WriteLine("------------------------");
            bool     isValidDate = false;
            DateTime orderDate   = new DateTime();
            string   date1       = "";

            while (isValidDate == false)
            {
                date1 = io.GetDateFromUser("Please provide a date");

                orderDate = DateTime.ParseExact(date1, "MMddyyyy", CultureInfo.GetCultureInfo("en-us"));

                if (orderDate <= DateTime.Today)
                {
                    Console.WriteLine("Date must be later than today");
                }
                else
                {
                    isValidDate = true;
                }
            }

            DisplayOrderResponse response = manager.LoadOrders(date1);

            foreach (FlooringOrder order in response.Orders)
            {
                io.DisplayOrderDetails(order);
            }

            int  ordernumber   = -1;
            bool isValidNumber = false;

            while (isValidNumber == false)
            {
                string orderstring = io.GetStringFromUser("Please enter an order number.");
                if (!int.TryParse(orderstring, out ordernumber))
                {
                    Console.WriteLine("This did not work, please enter a number");
                }
                else
                {
                    foreach (var item in response.Orders)
                    {
                        if (item.OrderNumber == ordernumber)
                        {
                            newOrder = item;
                        }
                    }
                    isValidNumber = true;
                }
            }

            //if one order = delete entire file
            //if theres more than one order in date, remove the order number from list -> remove with LINQ
            //save list back to file for that date

            io.DisplayOrderDetails(newOrder);
            bool isSave = false;

            while (isSave == false)
            {
                string place = PromptUser("Are you entireley sure that you want to remove this order? Choose yes or no.");
                if (place.ToLower() == "yes")
                {
                    DeleteOrderResponse deleteResponse = manager.DeleteOrder(date1, newOrder.OrderNumber);
                    isSave = true;
                    // save final to file with approps date
                }
                else if (place.ToLower() == "no")
                {
                    isSave = true;
                }
                else
                {
                    Console.WriteLine("Please enter yes or no");
                }
            }

            Console.WriteLine("Press any key to continue...");
            Console.ReadLine();
        }
Exemplo n.º 8
0
        public void Execute()
        {
            OrderManager manager = OrderManagerFactory.Create();

            Console.Clear();

            Console.WriteLine("Add an order");
            Console.WriteLine("------------------------");
            bool     isValidDate = false;
            DateTime orderDate   = new DateTime();
            string   date1       = "";

            while (isValidDate == false)
            {
                date1 = io.GetDateFromUser("Please provide a date");

                orderDate = DateTime.ParseExact(date1, "MMddyyyy", CultureInfo.GetCultureInfo("en-us"));

                if (orderDate < DateTime.Today)
                {
                    Console.WriteLine("Date must be after today");
                }
                else
                {
                    isValidDate = true;
                }
            }

            // orderNumberResponse =  manager.NextOrderNumber(date1);

            string name = PromptUser("What is your name?");

            while (!name.All(c => Char.IsLetterOrDigit(c) || c == ',' || c == '_' || c == '.') || name.Trim() == "")
            {
                Console.WriteLine("Names must include either letters, numbers, spaces, periods, or commas (or any combonation thereof)");
                name = PromptUser("What is your name?");
            }

            TaxStateResponse taxResponse = uo.LoadTax();
            FlooringTax      orderTax    = new FlooringTax();
            bool             isValidTax  = false;

            while (isValidTax == false)
            {
                foreach (FlooringTax tax in taxResponse.TaxRate)
                {
                    Console.WriteLine("  " + (taxResponse.TaxRate.IndexOf(tax) + 1) + ". " + tax.StateAbbreviation);
                }
                string state = PromptUser("Please specify the number of the state you're planning on building in.");
                if (int.TryParse(state, out int nation))
                {
                    if (nation > 0 && nation <= taxResponse.TaxRate.Count)
                    {
                        orderTax   = taxResponse.TaxRate[nation - 1];
                        isValidTax = true;
                    }
                }
                else
                {
                    Console.WriteLine("That state isn't in our region yet.");
                }
            }

            List <FlooringProduct> ProductList  = yo.LoadProducts();
            FlooringProduct        orderProduct = new FlooringProduct();
            bool isValidProduct = false;

            while (isValidProduct == false)
            {
                foreach (FlooringProduct prod in ProductList)
                {
                    Console.Write("  " + (ProductList.IndexOf(prod) + 1) + ". " + prod.ProductType);
                    Console.Write("   Cost per sqft $" + prod.CostPerSquareFoot);
                    Console.Write("   Cost for Labor per sqft $" + prod.LaborCostPerSquareFoot);
                    Console.WriteLine("\n");
                }
                string product = PromptUser("Please specify which product you would like to use.");
                if (int.TryParse(product, out int supply))
                {
                    if (supply > 0 && supply <= ProductList.Count)
                    {
                        orderProduct   = ProductList[supply - 1];
                        isValidProduct = true;
                    }
                }
                else
                {
                    Console.WriteLine("That product isn't available yet.");
                }
            }

            //Need to select product, if not (product) then show an error and loop

            string  area = PromptUser("What is the square footage of the area you are looking to cover?");
            decimal area1;

            while (decimal.TryParse(area, out area1) && area1 < 100)
            {
                //if (area1 < 100)
                //{
                Console.WriteLine("You must enter a positive amount above 100");
                Console.WriteLine("Please enter a valid square footage.");
                area = PromptUser("What is the square footage of the area you are looking to cover?");
                //}
                //else
                //{
                //    area = area1.ToString();
                //}
            }

            Console.Clear();

            Console.WriteLine("");
            newOrder.Area                   = area1;
            newOrder.State                  = orderTax.StateAbbreviation;
            newOrder.TaxRate                = orderTax.TaxRate;
            newOrder.CustomerName           = name;
            newOrder.date                   = orderDate;
            newOrder.ProductType            = orderProduct.ProductType;
            newOrder.CostPerSquareFoot      = orderProduct.CostPerSquareFoot;
            newOrder.LaborCostPerSquareFoot = orderProduct.LaborCostPerSquareFoot;
            io.DisplayOrderDetails(newOrder);

            bool isSave = false;

            while (isSave == false)
            {
                string place = PromptUser("Would you like to place this order? Please enter yes or no");
                if (place.ToLower() == "yes")
                {
                    AddOrderResponse addResponse = manager.AddOrder(date1, newOrder);
                    isSave = true;
                    // save final to file with approps date
                }
                else if (place.ToLower() == "no")
                {
                    isSave = true;
                    //return to main menu
                }
                else
                {
                    Console.WriteLine("Please enter yes or no");
                }
            }
            Console.WriteLine("Press any key to continue...");
            Console.ReadLine();

            string PromptUser(string s)
            {
                Console.WriteLine(s);
                return(Console.ReadLine());
            }
        }