Exemplo n.º 1
0
        public List<Order> LoadOrders(DateTime orderDate)
        {
            string path = CreateFilePathFor(orderDate);
            List<Order> theOrders = new List<Order>();

            if (File.Exists(path))
            {
                var reader = File.ReadAllLines(path);
                for (int i = 1; i < reader.Length; i++)
                {
                    var columns = reader[i].Split(',');
                    var order = new Order();

                    order.OrderNumber = int.Parse(columns[0]);
                    order.CustomerName = columns[1];
                    order.State = columns[2];
                    order.TaxRate = decimal.Parse(columns[3]);
                    order.ProductType = columns[4];
                    order.Area = decimal.Parse(columns[5]);
                    order.CostPerSquareFoot = decimal.Parse(columns[6]);
                    order.LaborCostPerSquareFoot = decimal.Parse(columns[7]);
                    order.MaterialCost = decimal.Parse(columns[8]);
                    order.LaborCost = decimal.Parse(columns[9]);
                    order.Tax = decimal.Parse(columns[10]);
                    order.Total = decimal.Parse(columns[11]);

                    theOrders.Add(order);
                }
            }
            else
            {
                return null;
            }
            return theOrders;
        }
            public void CanAddOrder()
            {
                var repo = new OrderRepository();
                DateTime orderDate = new DateTime(2015,05,03);

                Order orderToAdd = new Order()
                {
                    OrderNumber = 3,
                    CustomerName = "Wise",
                    State = "OH",
                    TaxRate = 6.25M,
                    ProductType = "Wood",
                    Area = 100.00M,
                    CostPerSquareFoot = 5.15M,
                    LaborCostPerSquareFoot = 4.75M,
                    MaterialCost = 515.00M,
                    LaborCost = 475.00M,
                    Tax = 61.88M,
                    Total = 1051.88M
                };

                //public void OverwriteFile(List<Order> orders, DateTime orderDate)

                var ordersList = repo.LoadOrders(orderDate);

                repo.Add(orderToAdd, orderDate);

                //repo.OverwriteFile(ordersList, orderDate);

                Assert.AreEqual(3, ordersList[ordersList.Count-1].OrderNumber);
                Assert.AreEqual("Wise", ordersList[ordersList.Count - 1].CustomerName);
            }
        public Order DisplayOrderInformation(string file, int orderNumber)
        {
            var ops = new OrderOperations();
            //string formattedDate = GetOrderDateFromUser();
            //int num = GetOrderNumberFromUser();

            var response = ops.GetOrder(file, orderNumber);
            //_currentOrder = response.OrderInfo;
                if (response.Success)
                {
                    _currentOrder = response.OrderInfo;
                    PrintOrderInformation(response.OrderInfo);
                    return _currentOrder;
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("\tError occurred!!");
                    Console.WriteLine(response.Message);
                    Console.WriteLine("\tPress enter to continue...");
                log.ErrorMessage = "That was not a valid order UI:DisplayOrdererInfo....";
                ops.CallingErrorLogRepository(log.ErrorMessage);
                Console.ReadLine();
                    //GetOrderNumberFromUser();//********************
                    return null;
                }
        }
Exemplo n.º 4
0
        public void Delete(Order orderToDelete, DateTime orderDate)
        {
            var orders = LoadOrders(orderDate);

            orders.Remove(orders.First(o => o.OrderNumber == orderToDelete.OrderNumber));

            OverwriteFile(orders, orderDate);
        }
        public void Execute()
        {
            DisplayOrderWorkflow dowf = new DisplayOrderWorkflow();
            formattedDate = dowf.GetOrderDateFromUser();
            orderNumber = dowf.GetOrderNumberFromUser();
            _currentOrder = dowf.DisplayOrderInformation(formattedDate, orderNumber);

            ConfirmDeletion();
        }
Exemplo n.º 6
0
        public void Add(Order orderToAdd, DateTime orderDate)
        {
            var orders = LoadOrders(orderDate);
            if (orders == null)
            {
                orders = new List<Order>();
            }

            orders.Add(orderToAdd);

            OverwriteFile(orders, orderDate);
        }
Exemplo n.º 7
0
        public Order EditOrderCalculations(Order editingOrder)
        {
            var taxMgr = ManagerFactory.CreateTaxManager();
            editingOrder.TaxRate = taxMgr.GetRate(editingOrder.State);

            editingOrder.MaterialCost = editingOrder.CostPerSquareFoot*editingOrder.Area;
            editingOrder.LaborCost = editingOrder.LaborCostPerSquareFoot*editingOrder.Area;

            var subTotal = editingOrder.MaterialCost + editingOrder.LaborCost;
            editingOrder.Tax = editingOrder.TaxRate*subTotal;
            editingOrder.Total = subTotal + editingOrder.Tax;

            return editingOrder;
        }
        public void RemoveOrderToConfirm(Order orderToRemove, DateTime removeDate)
        {
            var confirmOrder = "";
            bool validEntry = true;

            do
            {
                Console.WriteLine("Would you like to delete this order? Please enter Yes or No.");
                Console.WriteLine("========| Order {0} | ========",orderToRemove.OrderNumber);
                Console.WriteLine("Product Type: {0}", orderToRemove.ProductType);
                Console.WriteLine("Amount Ordered: {0}sqft", orderToRemove.Area);
                Console.WriteLine("Material Cost: {0:c}", orderToRemove.MaterialCost);
                Console.WriteLine("Labor Cost: {0:c}", orderToRemove.LaborCost);
                Console.WriteLine("Tax: {0:c}", orderToRemove.Tax);
                Console.WriteLine("Total: {0:c}", orderToRemove.Total);
                confirmOrder = Console.ReadLine();
                confirmOrder = confirmOrder.Substring(0, 1).ToUpper();
                if (confirmOrder != "Y" && confirmOrder != "N")
                {
                    Console.WriteLine("That is an invalid entry. Please input yes or no.");
                    validEntry = false;
                }
                if (string.IsNullOrEmpty(confirmOrder))
                {
                    Console.WriteLine("You must make a selection. Please input Yes or No.");
                    validEntry = false;
                }
                else
                {
                    validEntry = true;
                }
            } while (!validEntry);

            if (confirmOrder == "Y")
            {
                orderOps.RemoveOrder(orderToRemove, removeDate);
                if (response.Success)
                {
                   Console.WriteLine("Order #: {0} has been successfully removed.", orderToRemove.OrderNumber);
                }
                else
                {
                    Console.WriteLine(response.Message);
                }
            }
        }
Exemplo n.º 9
0
        public Response<Order> AddNewOrder(Order orderToAdd, DateTime orderDate)
        {
            var repo = new OrderRepository();
            var response = new Response<Order>();

            try
            {
                repo.Add(orderToAdd, orderDate);
                response.Success = true;
                response.Data = orderToAdd;
            }
            catch (Exception)
            {
                response.Success = false;
                response.Message = "The order could not be added. Please verify that inputs are correct.";
            }
            return response;
        }
Exemplo n.º 10
0
        /// <summary>
        /// 
        /// </summary>checks to see if a date file already exists
        /// <param name="currentDate"></param>
        /// <returns></returns>
        public string CheckFileDate(DateTime currentDate)
        {
            string formattedDate = _repo.GetOrderFile(currentDate);
            List<Order> order = new List<Order>();
            Response response = new Response();
            Order newOrder = new Order();

            if (!File.Exists(formattedDate))
            {
                //newOrder.OrderNumber = 1;
                string formattedDateNew = _repo.CreateFile(currentDate);
                return formattedDateNew;
            }

            else
            {
                //_repo.WriteNewLine(newOrder, formattedDate);
                return formattedDate;

            }

            // Console.WriteLine("That date does not match a a date in our files");
            //write this error to the error log
        }
Exemplo n.º 11
0
        public Response<Order> RemovePreEditedOrder(Order orderBeingRemoved, DateTime editDate)
        {
            var repo = new OrderRepository();
            var response = new Response<Order>();

            try
            {
                repo.Delete(orderBeingRemoved, editDate);
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = "Order could not be deleted; please enter information again.";
            }

            return response;
        }
Exemplo n.º 12
0
        public Order NewOrderCalculations(Order orderToAdd)
        {
            var taxMgr = ManagerFactory.CreateTaxManager();
            orderToAdd.TaxRate = taxMgr.GetRate(orderToAdd.State);

            var productMgr = ManagerFactory.CreateProductManagr();
            orderToAdd.CostPerSquareFoot = productMgr.CostPerSquareFoot(orderToAdd.ProductType);
            orderToAdd.LaborCostPerSquareFoot = productMgr.LaborCostPerSquareFoot(orderToAdd.ProductType);

            orderToAdd.MaterialCost = (orderToAdd.CostPerSquareFoot*orderToAdd.Area);
            orderToAdd.LaborCost = (orderToAdd.LaborCostPerSquareFoot*orderToAdd.Area);

            var subTotal = orderToAdd.MaterialCost + orderToAdd.LaborCost;
            orderToAdd.Tax = (orderToAdd.TaxRate*subTotal);
            orderToAdd.Total = (subTotal + orderToAdd.Tax);

            return orderToAdd;
        }
Exemplo n.º 13
0
        public void NewOrderNumber(Order orderToAdd, DateTime orderDate)
        {
            var repo = new OrderRepository();
            var allOrders = repo.LoadOrders(orderDate);

            if (allOrders != null)
            {
                var nextOrderNumber = allOrders.Max(o => o.OrderNumber);
                nextOrderNumber++;
                orderToAdd.OrderNumber = nextOrderNumber;
            }
            else
            {
                orderToAdd.OrderNumber = 1;
            }
        }
        public void PrintOrderInformation(Order orderInfo)
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("\t**********************");
            Console.WriteLine("\t  Order Number {0}", orderInfo.OrderNumber);
            Console.WriteLine("\t**********************");
            Console.ForegroundColor = ConsoleColor.White;

            Console.WriteLine("\t  Name: {0}", orderInfo.LastName.ToUpper());
            Console.WriteLine("\t  State: {0}", orderInfo.State.ToUpper());
            Console.WriteLine("\t  TaxRate: {0}", orderInfo.TaxRate);
            Console.WriteLine("\t  ProductType: {0}", orderInfo.ProductType.ToUpper());
            Console.WriteLine("\t  Area: {0}", orderInfo.Area);
            Console.WriteLine("\t  Cost Per Square Foot: {0:c}", orderInfo.CostSqFt);
            Console.WriteLine("\t  Labor Per Square Foot: {0:c}", orderInfo.LaborSqFt);
            Console.WriteLine("\t  Material Cost: {0:c}", orderInfo.MaterialCost);
            Console.WriteLine("\t  Labor Cost: {0:c}", orderInfo.LaborCost);
            Console.WriteLine("\t  Tax: {0:c}", orderInfo.Tax);
            Console.WriteLine("\t  Total: {0:c}", orderInfo.Total);
            Console.WriteLine();
            Console.WriteLine("\tPress Enter for Main Menu");
        }
Exemplo n.º 15
0
 public void Execute()
 {
     DisplayOrderWorkflow dowf = new DisplayOrderWorkflow();
     formattedDate = dowf.GetOrderDateFromUser();
     orderNumber = dowf.DisplayAllAccounts(formattedDate);
     //_the current order returns order before it's edited
     _currentOrder = dowf.DisplayOrderInformation(formattedDate, orderNumber);
     ChangeName();
     ChangeState();
     ChangeProduct();
     ChangeArea();
     ChangeMaterialCost();
     ChangeTax();
     ChangeLaborPerSquareFt();
     ChangeLaborCost();
     ChangeTotal();
     NewOrder();
 }
Exemplo n.º 16
0
        public void WriteNewLine(Order order, string formattedDate)
        {
            order.OrderNumber = (_orders.Any()) ? _orders.Max(c => c.OrderNumber) + 1 : 1;

            _orders.Add(order);
        }
Exemplo n.º 17
0
 public void GetEditedOrder(string formattedDate, int OrderNumber, Order order)
 {
     DeleteOrder(formattedDate, order.OrderNumber);
     _orders.Add(order);
 }
Exemplo n.º 18
0
        //calls CreateOrder and stores a Order in response.
        public void PopulateOrder(string formattedDate)
        {
            OrderOperations ops = new OrderOperations();
            var response = new Response();
            Order order = new Order();
            bool isValid = false;
            decimal stateRate = 0;
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.Clear();
            Console.WriteLine("\tEnter Account Information");
            Console.WriteLine("\t----------------------");
            Console.ForegroundColor = ConsoleColor.White;

            bool checkedInput = true;
            do
            {
                Console.Write("\tLast Name: ");
                order.LastName = Console.ReadLine();
                if (order.LastName.Length <= 0)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("\tThat was not a valid entry.\n\t Please enter a name...");
                    log.ErrorMessage = "That was not a valid name(name) UI:PopulateOrder/AddWorkflow....";
                    ops.CallingErrorLogRepository(log.ErrorMessage);
                    checkedInput = false;
                    continue;
                }

                checkedInput = ops.ValidateInput(order.LastName.ToCharArray());

                if (checkedInput == false)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("\tNo special characters in name are permitted.\n\t Please enter valid name");
                    log.ErrorMessage = "That was not a valid name(name) UI:PopulateOrder/AddWorkflow....";
                    ops.CallingErrorLogRepository(log.ErrorMessage);
                }

                else
                {
                    checkedInput = true;
                }

            } while (checkedInput == false);

            do
            {
                Console.ForegroundColor = ConsoleColor.White;

                Console.Write("\tState: ");
                order.State = Console.ReadLine();
                //string state = order.State;
                if (order.State.Length < 2)
                {
                    Console.WriteLine("\tThat was not a valid entry.\n Please enter a state...");
                    log.ErrorMessage = "That was not a valid entry(state) UI:PopulateOrder/AddWorkflow....";
                    ops.CallingErrorLogRepository(log.ErrorMessage);
                }
                else
                {
                    isValid = true;
                    stateRate = ops.MatchState(order.State);
                    if (stateRate == 0)
                    {
                        isValid = false;
                    }
                }
            } while (!isValid);

            //setting tax rate based on state
            order.TaxRate = stateRate;
            Console.ForegroundColor = ConsoleColor.White;

            Console.WriteLine("\tYour tax rate is {0}: ", order.TaxRate);

            //-------------PRODUCT-----------------------

            Product product = new Product();
            do
            {
                Console.ForegroundColor = ConsoleColor.White;

                //Console.WriteLine("");
                Console.Write("\tPlease enter a product type:\n\t\t Carpet, Laminate, Tile, Wood: ");

                order.ProductType = Console.ReadLine();

                if (order.ProductType.Length > 8 || order.ProductType.Length < 1)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("\tThat was not a valid entry.\n Please enter a product...");
                    log.ErrorMessage = "That was not a valid entry (product) UI:PopulateOrder....";
                    ops.CallingErrorLogRepository(log.ErrorMessage);
                }
                else
                {

                    order.CostSqFt = ops.ReturnCostPerSquareFoot(order.ProductType);

                }
            } while (order.CostSqFt == 0);// is 0

            Console.ForegroundColor = ConsoleColor.White;

            Console.WriteLine("\tYour cost per square foot is {0:c}: ", order.CostSqFt);

            // getting labor per square foot
            order.LaborSqFt = ops.LaborPerSquareFt(order.ProductType);
            Console.ForegroundColor = ConsoleColor.White;

            Console.WriteLine("\tYour labor per square foot is {0:c}: ", order.LaborSqFt);

            // getting area
            do
            {
                Console.ForegroundColor = ConsoleColor.White;

                Console.Write("\tArea: ");
                string input = Console.ReadLine();
                if (input.Length == 0)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("\tThat was not a valid entry.\n\t Please enter a Area...");
                    log.ErrorMessage = "That was not a valid Area(Area) UI:PopulateOrder/AddWorkflow....";
                    ops.CallingErrorLogRepository(log.ErrorMessage);
                    order.Area = 0;
                    continue;
                }

                order.Area = decimal.Parse(input);

                if (order.Area <= 0)
                {
                    Console.WriteLine("\tYou need to get a bigger house!");
                    log.ErrorMessage = "That was not a valid area (area) UI:PopulateOrder....";
                    ops.CallingErrorLogRepository(log.ErrorMessage);

                }
            } while (order.Area <= 0);

            // getting material cost
            order.MaterialCost = ops.MaterialCost(order.ProductType, order.Area);
            Console.ForegroundColor = ConsoleColor.White;

            Console.Write("\tMaterial Cost: {0:c} ", order.MaterialCost);

            //getting labor cost
            Console.ForegroundColor = ConsoleColor.White;

            order.LaborCost = ops.LaborCost(order.ProductType, order.Area);
            Console.Write("\nLabor Cost: {0:c} ", order.LaborCost);

            //get tax
            Console.ForegroundColor = ConsoleColor.White;

            order.Tax = ops.Tax(order.State, order.MaterialCost);
            Console.Write("\nTax: {0:c} ", order.Tax);

            //get total
            Console.ForegroundColor = ConsoleColor.White;

            Console.Write("\nTotal: {0:c}", order.Total);
            order.Total = ops.Total(order.MaterialCost, order.Tax, order.LaborCost);

            Console.WriteLine();

            ops.CreateOrder(order, formattedDate);

            Console.Clear();
            Console.ForegroundColor = ConsoleColor.Yellow;

            Console.WriteLine("\n\tHere is your new order information:  \n");
            DisplayOrderWorkflow dowf = new DisplayOrderWorkflow();
            dowf.PrintOrderInformation(order);
            Console.ForegroundColor = ConsoleColor.White;
        }
Exemplo n.º 19
0
 private static void WriteOrder(StreamWriter writer, Order o)
 {
 }
Exemplo n.º 20
0
        public Response EditOrder(string formattedDate, int orderNumber, Order changedOrder)
        {
            Response response = new Response();
            _repo.GetEditedOrder(formattedDate, orderNumber, changedOrder);
            var revisedOrder = _repo.SortNewEditedFile(formattedDate, orderNumber);

            if (revisedOrder != null)
            {
                response.Success = true;
                response.OrderInfo = revisedOrder;
            }
            else
            {
                response.Success = false;
                Console.ForegroundColor = ConsoleColor.Red;

                response.Message = "The Edit was not sucessful in operations/EditOrder.";
                log.ErrorMessage = "That Edit was not sucessful  BLL:EditOrder....";
                CallingErrorLogRepository(log.ErrorMessage);
            }
            response.OrderInfo = revisedOrder;
            return response;
        }
Exemplo n.º 21
0
        public void GetEditedOrder(string formattedDate, int OrderNumber, Order changedOrder)
        {
            //public Order GetOrderNumber(string formattedDate, int OrderNumber)

            List<Order> orders = GetDataInformation(formattedDate); //brings back all orders from file

            var otherOrders = from o in orders
                where o.OrderNumber != OrderNumber
                // gets all orders EXCEPT the one we are changing
                select o;

            //File.WriteAllLines(formattedDate, result.ToString());//rewrites to file all orders EXCEPT the original orderNumber

            RewriteFile(formattedDate, otherOrders);
            using (var writer = File.AppendText(formattedDate)) // appends new order to end of file
            {
                writer.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", changedOrder.OrderNumber,
                    changedOrder.LastName, changedOrder.State, changedOrder.TaxRate, changedOrder.ProductType,
                    changedOrder.Area,
                    changedOrder.CostSqFt,
                    changedOrder.LaborSqFt, changedOrder.MaterialCost, changedOrder.LaborCost, changedOrder.Tax,
                    changedOrder.Total);
            }
        }
Exemplo n.º 22
0
 private void PrintOrderDetails(Order orderToAdd)
 {
     Console.Clear();
     Console.WriteLine("Order Summary: ");
     Console.WriteLine("Product Type: {0}", orderToAdd.ProductType);
     Console.WriteLine("Area: {0}",orderToAdd.Area);
     Console.WriteLine("Cost of Materials: {0:c}",orderToAdd.MaterialCost);
     Console.WriteLine("Cost of Labor: {0:c}", orderToAdd.LaborCost);
     Console.WriteLine("Tax: {0:c}",orderToAdd.Tax);
     Console.WriteLine("-------------------");
     Console.WriteLine("Total: {0:c}",orderToAdd.Total);
 }
Exemplo n.º 23
0
 //if date folder exists we need to add new order to it
 public void WriteNewLine(Order order, string formattedDate)
 {
     List<Order> orders = GetDataInformation(formattedDate);
     int newOrderNo = 1;
     if (orders.Count > 1)
     {
         newOrderNo = orders.Max(o => o.OrderNumber) + 1;
     }
     order.OrderNumber = newOrderNo;
     using (var writer = File.AppendText(formattedDate))
     {
         writer.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", order.OrderNumber, order.LastName,
             order.State, order.TaxRate, order.ProductType, order.Area, order.CostSqFt,
             order.LaborSqFt, order.MaterialCost, order.LaborCost, order.Tax, order.Total);
         //OrderNumber,CustomerName,State,TaxRate,ProductType,Area,CostPerSquareFoot,
         //LaborCostPerSquareFoot,MaterialCost,LaborCost,Tax,Total
         //1,Wise,OH,6.25,Wood,100.00,5.15,4.75,515.00,475.00,61.88,1051.88
     }
 }
Exemplo n.º 24
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="order"></param>
        /// <param name="formattedDate"></param>
        /// <returns></returns>
        public Response NewCustomerInformationResponse(Order order, string formattedDate)
        {
            var response = new Response();

            _repo.WriteNewLine(order, formattedDate);
            response.OrderInfo = order;

            return response;
        }
Exemplo n.º 25
0
        //returns all orders of a specific date
        public List<Order> GetDataInformation(string file)
        {
            List<Order> orders = new List<Order>();

            //read all orders that occur in orderFile, ie. on a specified date
            var reader = File.ReadAllLines(file);

            //i = 1 starts on line 1 not 0.
            for (int i = 1; i < reader.Length; i++)
            {
                var columns = reader[i].Split(',');

                var order = new Order();

                order.OrderNumber = int.Parse(columns[0]);
                order.LastName = columns[1];
                order.State = columns[2];
                order.TaxRate = decimal.Parse(columns[3]);
                order.ProductType = (columns[4]);
                order.Area = decimal.Parse(columns[5]);
                order.CostSqFt = decimal.Parse(columns[6]);
                order.LaborSqFt = decimal.Parse(columns[7]);
                order.MaterialCost = decimal.Parse(columns[8]);
                order.LaborCost = decimal.Parse(columns[9]);
                order.Tax = decimal.Parse(columns[10]);
                order.Total = decimal.Parse(columns[11]);

                orders.Add(order);
            }
            return orders;
        }
Exemplo n.º 26
0
 private static void WriteOrder(StreamWriter writer, Order o)
 {
     writer.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", o.OrderNumber,
         o.LastName, o.State, o.TaxRate, o.ProductType,
         o.Area,
         o.CostSqFt,
         o.LaborSqFt, o.MaterialCost, o.LaborCost, o.Tax,
         o.Total);
 }
Exemplo n.º 27
0
 public void CreateOrder(Order order, string formattedDate)
 {
     Response response = new Response();
     _repo.WriteNewLine(order, formattedDate);
 }
Exemplo n.º 28
0
        public void OrderToConfirm(Order orderToAdd)
        {
            var orderOps = new OrderOperations();
            DateTime orderDateToday = DateTime.Today;
            var confirmOrder = "";
            bool validEntry = true;

            do
            {
                Console.WriteLine("Would you like to place this order? Please enter Yes or No.");
                confirmOrder = Console.ReadLine();
                confirmOrder = confirmOrder.Substring(0, 1).ToUpper();
                if (confirmOrder != "Y" && confirmOrder != "N")
                {
                    Console.WriteLine("That is an invalid entry. Please input yes or no.");
                    validEntry = false;
                }
                if (string.IsNullOrEmpty(confirmOrder))
                {
                    Console.WriteLine("You must make a selection. Please input Yes or No.");
                    validEntry = false;
                }
                else
                {
                    validEntry = true;
                }
            } while (!validEntry);

            if (confirmOrder == "Y")
            {
                orderOps.NewOrderNumber(orderToAdd, orderDateToday);
                var response = orderOps.AddNewOrder(orderToAdd, orderDateToday);

                if (response.Success)
                {
                    Console.WriteLine("========| Order Confirmation | ========");
                    Console.WriteLine("Order number: {0}",response.Data.OrderNumber);
                    Console.WriteLine("Product Type: {0}", response.Data.ProductType);
                    Console.WriteLine("Amount Ordered: {0}sqft", response.Data.Area);
                    Console.WriteLine("Material Cost: {0:c}", response.Data.MaterialCost);
                    Console.WriteLine("Labor Cost: {0:c}", response.Data.LaborCost);
                    Console.WriteLine("Tax: {0:c}", response.Data.Tax);
                    Console.WriteLine("Total: {0:c}", response.Data.Total);
                }
            }
            else
            {
                var response = orderOps.AddNewOrder(orderToAdd, orderDateToday);
                Console.WriteLine(response.Message);
            }
        }