public void DisplayAllOrdersFromDate(string orderDate)
        {
            var response = Ops.GetAllOrdersFromDate(orderDate);

            if (response.Success)
            {
                foreach (var order in response.OrderList)
                {
                    Console.WriteLine("Order number {0}", order.OrderNumber);
                    Console.WriteLine("\t{0}, Total : {1:c}\n", order.CustomerName, order.Total);
                }

            }
            if (!response.Success)
            {
                var log = new ErrorLogger()
                {
                    TimeOfError = DateTime.Now,
                    Message = String.Format("RemoveOrder : error displaying orders from selected date : {0}", response.Message)
                };
                Ops.ErrorPassdown(log);

                Console.Clear();
                Console.WriteLine("There was an error");
                Console.WriteLine("Press enter to return to main menu");
                Console.ReadLine();
            }
        }
Example #2
0
        public void DisplayOrdersFromDate(string orderDate)
        {
            var response = Ops.GetAllOrdersFromDate(orderDate);

            if (response.Success)
            {
                OrderListFromDate = response.OrderList;
                PrintOrderInfo(response.OrderList);
            }
            else
            {
                var log = new ErrorLogger()
                {
                    TimeOfError = DateTime.Now,
                    Message = String.Format("LookUpOrder : error fetching all orders from entered date : {0}", response.Message)
                };
                Ops.ErrorPassdown(log);

                Console.WriteLine("Date not found.");
            }
        }
        public string GetOrderDateFromUser()
        {
            do
            {
                Console.Clear();
                string orderDateString;
                DateTime orderDate;
                Console.Write("Enter an order date : ");
                orderDateString = Console.ReadLine();
                bool validDate = DateTime.TryParse(orderDateString, out orderDate);

                bool doesExist = Ops.DoesDateExistBll(orderDate.ToString("MMddyyyy")); //here
                if (validDate && doesExist)
                {
                    return orderDate.ToString("MMddyyyy");
                }
                if (validDate)
                {
                    var log = new ErrorLogger()
                    {
                        TimeOfError = DateTime.Now,
                        Message = $"RemoveOrder : no orders found on date entered : {orderDateString}"
                    };
                    Ops.ErrorPassdown(log);

                    Console.WriteLine("There are no orders for that date...");
                    Console.WriteLine("Press enter to continue...");
                    Console.ReadLine();
                }
                if (!validDate)
                {
                    var log = new ErrorLogger()
                    {
                        TimeOfError = DateTime.Now,
                        Message = String.Format("RemoveOrder : invalid date entered : {0}", orderDateString)
                    };
                    Ops.ErrorPassdown(log);

                    Console.WriteLine("Please enter a valid date...");
                    Console.WriteLine("Press enter to continue...");
                    Console.ReadLine();
                }

            } while (true);
        }
Example #4
0
        public Response DisplayOrder(Response response)
        {
            if (response.Success)
            {
                Console.Clear();
                Console.WriteLine("Order date : {0}/{1}/{2}", response.Order.OrderDate.Substring(0, 2),
                    response.Order.OrderDate.Substring(2, 2),
                    response.Order.OrderDate.Substring(4));
                Console.WriteLine("Order number {0:0000}", response.Order.OrderNumber);
                Console.WriteLine("\nCustomer name : {0}", response.Order.CustomerName);
                Console.WriteLine("Area : {0} sq ft", response.Order.Area);
                Console.WriteLine("Product type : {0}", response.Order.ProductType.ProductType);
                Console.WriteLine("Material cost per sq ft : {0:c}", response.Order.ProductType.MaterialCost);
                Console.WriteLine("Labor cost per sq ft : {0:c}", response.Order.ProductType.LaborCost);
                Console.WriteLine("Total material cost : {0:c}", response.Order.MaterialCost);
                Console.WriteLine("Total labor cost : {0:c}", response.Order.LaborCost);
                Console.WriteLine("{0} state tax ({1:p}) : {2:c}", response.Order.State, response.Order.TaxRate/100,
                    response.Order.Tax);
                Console.WriteLine("\nOrder total : {0:c}", response.Order.Total);
                Console.WriteLine();
                Console.WriteLine();

                Response orderToEdit = ConfirmUserEdit(response);
                return orderToEdit;

                //method to take this input and use it to either write on the data or not
            }
            if (!response.Success)
            {
                var log = new ErrorLogger()
                {
                    TimeOfError = DateTime.Now,
                    Message = $"EditOrder : error displaying order data from selected date : {response.Message}"
                };
                Ops.ErrorPassdown(log);

                Console.Clear();
                Console.WriteLine("There was an error");
                Console.WriteLine("Press enter to return to main menu");
                Console.ReadLine();

            }
            return null;
        }
Example #5
0
        public int GetOrderNumberFromUser()
        {
            do
            {
                //Console.Clear();
                int orderNumber;

                Console.Write("Enter an order number to edit : ");
                var orderNumberString = Console.ReadLine();
                //bool doesExist = File.Exists(String.Format(@"DataFiles\Orders_{0}.txt", orderDateString));
                if (int.TryParse(orderNumberString, out orderNumber))
                {
                    return orderNumber;
                }

                var log = new ErrorLogger()
                {
                    TimeOfError = DateTime.Now,
                    Message = String.Format("EditOrder : invalid order number entered : {0}", orderNumber)
                };
                Ops.ErrorPassdown(log);

                Console.WriteLine("Please enter a number to check for an order.");
                Console.WriteLine("Press enter to continue");
                Console.ReadLine();

            } while (true);
        }
Example #6
0
        public string GetOrderDateFromUser()
        {
            string input;
            do
            {
                Console.Clear();
                DateTime orderDate;
                Console.Write("Enter an order date: ");
                var orderDateString = Console.ReadLine();
                bool validDate = DateTime.TryParse(orderDateString, out orderDate);

                bool doesExist = Ops.DoesDateExistBll(orderDate.ToString("MMddyyyy")); //here
                if (doesExist && validDate)
                {

                    DisplayAllOrdersFromDate(orderDate.ToString("MMddyyyy"));
                    return orderDate.ToString("MMddyyyy");

                }
                if (!validDate)
                {
                    Console.WriteLine("That does not look like a valid date...");
                    var log = new ErrorLogger()
                    {
                        TimeOfError = DateTime.Now,
                        Message = String.Format("EditOrder : invalid date entered : {0}", orderDateString)
                    };
                    Ops.ErrorPassdown(log);
                }

                if (validDate)
                    Console.WriteLine("There are no matching orders...");
                Console.WriteLine("Press enter to continue, or (M)ain Menu...");

                var log2 = new ErrorLogger()
                {
                    TimeOfError = DateTime.Now,
                    Message = $"EditOrder : no orders on date entered : {orderDateString}"
                };
                Ops.ErrorPassdown(log2);

                input = Console.ReadLine();
                input = input?.ToUpper();
                if (input != null && input.ToUpper() == "M")
                {
                    return "X";
                }
            } while (true);
        }
Example #7
0
 public Response GetNewUserState(Response orderInfo)
 {
     do
     {
         Console.WriteLine("Press enter if no change...");
         Console.Write("Enter new state (OH, PA, MI, or IN) as 2-letter abbreviation ({0}) : ", orderInfo.Order.State);
         var newState = Console.ReadLine();
         newState = newState?.ToUpper();
         if (newState == null) continue;
         switch (newState.ToUpper())
         {
             case "":
                 return orderInfo;
             case "OH":
                 orderInfo.Order.State = "OH";
                 orderInfo.Order.TaxRate = (decimal)6.25;
                 return orderInfo;
             case "IN":
                 orderInfo.Order.State = "IN";
                 orderInfo.Order.TaxRate = (decimal) 6.00;
                 return orderInfo;
             case "PA":
                 orderInfo.Order.State = "PA";
                 orderInfo.Order.TaxRate = (decimal) 6.75;
                 return orderInfo;
             case "MI":
                 orderInfo.Order.State = "MI";
                 orderInfo.Order.TaxRate = (decimal) 5.75;
                 return orderInfo;
             default:
                 var log = new ErrorLogger()
                 {
                     TimeOfError = DateTime.Now,
                     Message = String.Format("EditOrder : invalid state entered : {0}", newState)
                 };
                 Ops.ErrorPassdown(log);
                 break;
         }
     } while (true);
 }
        //Console.WriteLine("Please Enter a valid date in MMDDYY format (no other characters)");
        //Console.WriteLine("Press enter to continue");
        //Console.ReadLine();
        public string GetCustomerNameFromUser()
        {
            do
            {
                Console.Clear();
                Console.Write("Please enter customer name : ");
                string customerName = Console.ReadLine();

                if (customerName != null && (customerName != "" && customerName.Length >= 2))
                {
                    return customerName;
                }

                var log = new ErrorLogger()
                {
                    TimeOfError = DateTime.Now,
                    Message = String.Format("AddOrder : invalid customer name entered : {0}", customerName)
                };

                Ops.ErrorPassdown(log);

                Console.WriteLine("Please Enter a valid customer name (customer names must be at least two characters).");
                Console.WriteLine("Press enter to continue");
                Console.ReadLine();

            } while (true);
        }
        public void DisplayOrder(Response response)
        {
            if (response.Success)
            {
                Console.Clear();
                Console.WriteLine("Order date : {0}/{1}/{2}", response.Order.OrderDate.Substring(0, 2),
                    response.Order.OrderDate.Substring(2, 2), response.Order.OrderDate.Substring(4));
                Console.WriteLine("Order number {0:0000}", response.Order.OrderNumber);
                Console.WriteLine("\nCustomer name : {0}", response.Order.CustomerName);
                Console.WriteLine("Area : {0} sq ft", response.Order.Area);
                Console.WriteLine("Product type : {0}", response.Order.ProductType.ProductType);
                Console.WriteLine("Material cost per sq ft : {0:c}", response.Order.ProductType.MaterialCost);
                Console.WriteLine("Labor cost per sq ft : {0:c}", response.Order.ProductType.LaborCost);
                Console.WriteLine("Total material cost : {0:c}", response.Order.MaterialCost);
                Console.WriteLine("Total labor cost : {0:c}", response.Order.LaborCost);
                Console.WriteLine("{0} state tax ({1:p}) : {2:c}", response.Order.State, response.Order.TaxRate / 100,
                    response.Order.Tax);
                Console.WriteLine("\nOrder total : {0:c}", response.Order.Total);
                Console.WriteLine();
                Console.WriteLine();

                ConfirmUserCommit(response);

                //method to take this input and use it to either write on the data or not
            }
            if (!response.Success)
            {
                var log = new ErrorLogger()
                {
                    TimeOfError = DateTime.Now,
                    Message = String.Format("RemoveOrder : order does not exist on selected day : {0}", response.Message)
                };
                Ops.ErrorPassdown(log);

                Console.Clear();
                Console.WriteLine("There were no orders matching that data...");
                Console.WriteLine("Press enter to return to main menu");
                Console.ReadLine();
            }
        }
Example #10
0
        public void PromptUserForMoreDeets(string orderDate)
        {
            var response = Ops.GetAllOrdersFromDate(orderDate);

            bool notValidInput;
            do
            {
                Console.Write("Enter an order number to see more detail (or enter 'm' to return to main menu) : ");
                string input = Console.ReadLine();
                int orderNo;
                if (int.TryParse(input, out orderNo) &&
                    File.Exists(String.Format(@"DataFiles\Orders_{0}.txt", orderDate)))
                {
                    Console.Clear();
                    var order = from a in response.OrderList
                                where a.OrderNumber == orderNo
                                select a;
                    foreach (var toPrint in order)
                    {
                        Console.WriteLine("Order date : {0}/{1}/{2}", toPrint.OrderDate.Substring(0, 2),
                            toPrint.OrderDate.Substring(2, 2),
                            toPrint.OrderDate.Substring(4));
                        Console.WriteLine("Order number {0:0000}", toPrint.OrderNumber);
                        Console.WriteLine("\nCustomer name : {0}", toPrint.CustomerName);
                        Console.WriteLine("Area : {0} sq ft", toPrint.Area);
                        Console.WriteLine("Product type : {0}", toPrint.ProductType.ProductType);
                        Console.WriteLine("Material cost per sq ft : {0:c}", toPrint.ProductType.MaterialCost);
                        Console.WriteLine("Labor cost per sq ft : {0:c}", toPrint.ProductType.LaborCost);
                        Console.WriteLine("Total material cost : {0:c}", toPrint.MaterialCost);
                        Console.WriteLine("Total labor cost : {0:c}", toPrint.LaborCost);
                        Console.WriteLine("{0} state tax ({1:p}) : {2:c}", toPrint.State, toPrint.TaxRate / 100,
                            toPrint.Tax);
                        Console.WriteLine("\nOrder total : {0:c}", toPrint.Total);
                        Console.WriteLine();
                        Console.WriteLine("Press enter to return to main menu");
                        Console.ReadLine();
                    }
                    notValidInput = false;
                }
                else if (input != null && input.ToUpper() == "M")
                {
                    notValidInput = false;
                }
                else
                {
                    var log = new ErrorLogger()
                    {
                        TimeOfError = DateTime.Now,
                        Message = $"LookUpOrder : invalid order number to lookup more details entered : {input}"
                    };
                    Ops.ErrorPassdown(log);

                    notValidInput = true;
                }
            } while (notValidInput);
        }
Example #11
0
        public void DisplayOrderInfo()
        {
            string orderDate = GetDateFromUser();
            if (orderDate != "X")

            {
                string customerName;
                customerName = GetCustomerNameFromUser();
                string state = GetStateFromUser();
                string productType;
                productType = GetProductTypeFromUser();
                var area = GetAreaFromUser();

                var response = Ops.AddOrder(orderDate, customerName, state, productType, area);

                if (response.Success)
                {
                    Console.Clear();
                    Console.WriteLine("Order date : {0}/{1}/{2}", response.Order.OrderDate.Substring(0, 2),
                        response.Order.OrderDate.Substring(2, 2),
                        response.Order.OrderDate.Substring(4));
                    Console.WriteLine("Order number {0:0000}", response.Order.OrderNumber);
                    Console.WriteLine("\nCustomer name : {0}", response.Order.CustomerName);
                    Console.WriteLine("Area : {0} sq ft", response.Order.Area);
                    Console.WriteLine("Product type : {0}", response.Order.ProductType.ProductType);
                    Console.WriteLine("Material cost per sq ft : {0:c}", response.Order.ProductType.MaterialCost);
                    Console.WriteLine("Labor cost per sq ft : {0:c}", response.Order.ProductType.LaborCost);
                    Console.WriteLine("Total material cost : {0:c}", response.Order.MaterialCost);
                    Console.WriteLine("Total labor cost : {0:c}", response.Order.LaborCost);
                    Console.WriteLine("{0} state tax ({1:p}) : {2:c}", response.Order.State, response.Order.TaxRate/100,
                        response.Order.Tax);
                    Console.WriteLine("\nOrder total : {0:c}", response.Order.Total);
                    Console.WriteLine();
                    Console.WriteLine();

                    ConfirmUserCommit(response);

                    //method to take this input and use it to either write on the data or not
                }
                if (!response.Success)
                {
                    var log = new ErrorLogger()
                    {
                        TimeOfError = DateTime.Now,
                        Message = $"AddOrder : order display error : {response.Message}"
                    };
                    Ops.ErrorPassdown(log);

                    Console.Clear();
                    Console.WriteLine("There was an error");
                    Console.WriteLine("Press enter to return to main menu");
                    Console.ReadLine();
                }
            }
        }
Example #12
0
        public string GetStateFromUser()
        {
            do
            {
                Console.Clear();
                Console.Write("Please choose a state (OH, PA, MI, or IN) : ");
                var state = Console.ReadLine();
                if (state != null)
                {
                    state = state.ToUpper();

                    switch (state)
                    {
                        case "OH":
                        case "PA":
                        case "MI":
                        case "IN":
                            return state;
                        default:
                            var log = new ErrorLogger()
                            {
                                TimeOfError = DateTime.Now,
                                Message = String.Format("AddOrder : invalid state entered : {0}", state)
                            };

                            Ops.ErrorPassdown(log);
                            Console.WriteLine("Please enter a valid state abbreviation (from the list provided!)");
                            Console.WriteLine("Press enter to continue");
                            break;
                    }
                }
            } while (true);
        }
Example #13
0
        public string GetProductTypeFromUser()
        {
            do
            {
                Console.Clear();
                Console.Write("Please enter the product type (Choices: (C)arpet, (L)aminate, (T)ile, or (W)ood) : ");
                string productType = Console.ReadLine();

                if (productType != null)
                    switch (productType.ToUpper())
                    {
                        case "C":
                        case "CARPET":
                            productType = "Carpet";
                            return productType;
                        case "L":
                        case "LAMINATE":
                            productType = "Laminate";
                            return productType;
                        case "T":
                        case "TILE":
                            productType = "Tile";
                            return productType;
                        case "W":
                        case "WOOD":
                            productType = "Wood";
                            return productType;
                        default:
                            var log = new ErrorLogger()
                            {
                                TimeOfError = DateTime.Now,
                                Message = String.Format("AddOrder : invalid date entered : {0}", productType)
                            };

                            Ops.ErrorPassdown(log);
                            Console.WriteLine("Please choose a valid product type");
                            Console.WriteLine("Press enter to continue");
                            Console.ReadLine();
                            break;

                    }
            } while (true);
        }
Example #14
0
        public string GetDateFromUser()
        {
            do
            {
                var date = DateTime.Now;
                Console.Clear();
                DateTime orderDate;
                Console.Write("Enter an order date: ");
                var orderDateString = Console.ReadLine();
                bool validDate = DateTime.TryParse(orderDateString, out orderDate);
                if (validDate)
                {
                    if (orderDate.ToString("MMddyyyy") == date.ToString("MMddyyyy"))
                        return orderDate.ToString("MMddyyyy");
                    if (orderDate.ToString("MMddyyyy") != date.ToString("MMddyyyy"))
                    {
                        Console.Write("That is not today's date; would you like to continue (y/n) ? : ");
                        var inputContinue = Console.ReadLine();
                        if (inputContinue != null && inputContinue.ToUpper() == "Y")
                            return orderDate.ToString("MMddyyyy");
                        if (inputContinue != null && inputContinue.ToUpper() == "N")
                            return "X";
                    }
                }
                if (!validDate)
                    Console.WriteLine("That does not look like a valid date...");
                Console.WriteLine("Press enter to continue, or (M)ain Menu...");
                var input = Console.ReadLine();
                if (input != null)
                {
                    input = input.ToUpper();
                    var log = new ErrorLogger()
                    {
                        TimeOfError = DateTime.Now,
                        Message = $"AddOrder : invalid date entered : {orderDateString}"
                    };

                    Ops.ErrorPassdown(log);
                    if (input.ToUpper() == "M")
                    {
                        return "X";
                    }
                }
            } while (true);
        }
        public int GetOrderNumberFromUser()
        {
            do
            {
                string orderNumberString;
                int orderNumber;
                Console.Write("Enter an order number to delete : ");
                orderNumberString = Console.ReadLine();
                bool validInput = int.TryParse(orderNumberString, out orderNumber);
                if (validInput)
                {
                    return orderNumber;
                }

                var log = new ErrorLogger()
                {
                    TimeOfError = DateTime.Now,
                    Message = String.Format("RemoveOrder : invalid order number entered : {0}", orderNumberString)
                };
                Ops.ErrorPassdown(log);

                Console.WriteLine("Please enter a number to check for an order.");
                Console.WriteLine("Press enter to continue");
                Console.ReadLine();

            } while (true);
        }
Example #16
0
        public Response GetNewUserArea(Response orderInfo)
        {
            do
            {
                decimal newArea;
                Console.WriteLine("Press enter if no change...");
                Console.Write("Enter new area ({0}) : ", orderInfo.Order.Area);
                var newAreaString = Console.ReadLine();
                bool validArea = decimal.TryParse(newAreaString, out newArea);
                if (newAreaString != "" && validArea && newArea > 0)
                {
                    orderInfo.Order.Area = newArea;
                    return orderInfo;
                }
                else if (newAreaString == "")
                {
                    return orderInfo;
                }
                else if (!validArea)
                {
                    var log = new ErrorLogger()
                    {
                        TimeOfError = DateTime.Now,
                        Message = String.Format("EditOrder : invalid area value entered : {0}", newAreaString)
                    };
                    Ops.ErrorPassdown(log);
                }
                else if (newArea <= 0)
                {
                    var log = new ErrorLogger()
                    {
                        TimeOfError = DateTime.Now,
                        Message = String.Format("EditOrder : negative or zero area entered : {0}", newArea)
                    };
                    Ops.ErrorPassdown(log);
                }

            } while (true);
        }
Example #17
0
 public Response GetNewUserProductType(Response orderInfo)
 {
     do
     {
         Console.WriteLine("Press enter if no change...");
         Console.Write("Enter new product type (Choices : (C)arpet, (L)aminate, (T)ile, (W)ood) ({0}) : ", orderInfo.Order.ProductType.ProductType);
         var newProductType = Console.ReadLine();
         if (newProductType == null) continue;
         switch (newProductType.ToUpper())
         {
             case "":
                 return orderInfo;
             case "C":
             case "CARPET":
                 orderInfo.Order.ProductType = new ProductTypes()
                 {
                     ProductType = "Carpet",
                     MaterialCost = (decimal)2.25,
                     LaborCost = (decimal)2.10
                 };
                 return orderInfo;
             case "L":
             case "LAMINATE":
                 orderInfo.Order.ProductType = new ProductTypes()
                 {
                     ProductType = "Laminate",
                     MaterialCost = (decimal)1.75,
                     LaborCost = (decimal)2.10
                 };
                 return orderInfo;
             case "T":
             case "TILE":
                 orderInfo.Order.ProductType = new ProductTypes()
                 {
                     ProductType = "Tile",
                     MaterialCost = (decimal)3.50,
                     LaborCost = (decimal)4.15
                 };
                 return orderInfo;
             case "W":
             case "WOOD":
                 orderInfo.Order.ProductType = new ProductTypes()
                 {
                     ProductType = "Wood",
                     MaterialCost = (decimal) 5.15,
                     LaborCost = (decimal) 4.75
                 };
                 return orderInfo;
             default:
                 var log = new ErrorLogger()
                 {
                     TimeOfError = DateTime.Now,
                     Message = String.Format("EditOrder : invalid product type entered : {0}", newProductType)
                 };
                 Ops.ErrorPassdown(log);
                 break;
         }
     } while (true);
 }
Example #18
0
 public void ErrorPassdown(ErrorLogger log)
 {
     //var repo = new OrderRepository();
     _repo.WriteError(log);
 }
Example #19
0
        public decimal GetAreaFromUser()
        {
            do
            {
                decimal area;
                Console.Clear();
                Console.Write("Please enter the area needed (sq ft) : ");
                if (decimal.TryParse((Console.ReadLine()), out area) && area > 0)
                {
                    return area;
                }

                var log = new ErrorLogger()
                {
                    TimeOfError = DateTime.Now,
                    Message = String.Format("AddOrder : invalid area entered : {0}", area)
                };

                Ops.ErrorPassdown(log);

                Console.WriteLine("Please Enter a valid area value");
                Console.WriteLine("Press enter to continue");
                Console.ReadLine();

            } while (true);
        }