public void GetProductInfoTest()
        {
            var ops = new ProductOperations();
            var products = ops.GetProductInfo();
            var product = products.FirstOrDefault();
            var numProducts = products.Count();

            //Validating that all information is accurate
            Assert.AreEqual(product.ProductType, "rock");
            Assert.AreEqual(product.CostPerSquareFoot, 5.00);
            Assert.AreEqual(product.LaborCostPerSquareFoot, 2.50);

            //Validating total number of products is returned
            Assert.AreEqual(numProducts, 3);
        }
        public void BuildOrder()
        {
            var taxOps = new TaxOperations();
            var stateTaxInfo = taxOps.GetTaxInfo();

            var prodOps = new ProductOperations();
            var productInfo = prodOps.GetProductInfo();

            var result =
                productInfo.FirstOrDefault(p => p.ProductType.ToLower() == _customerOrder.ProductInfo.ProductType.ToLower());
            var tax = stateTaxInfo.FirstOrDefault(p => p.StateAbbreviation.ToUpper() == _customerOrder.State.ToUpper());

            _customerOrder.ProductInfo.CostPerSquareFoot = result.CostPerSquareFoot;
            _customerOrder.ProductInfo.LaborCostPerSquareFoot = result.LaborCostPerSquareFoot;
            _customerOrder.TaxRate = tax.TaxRate;
            _customerOrder.MaterialCost = _customerOrder.Area * _customerOrder.ProductInfo.CostPerSquareFoot;
            _customerOrder.LaborCost = _customerOrder.Area * _customerOrder.ProductInfo.LaborCostPerSquareFoot;
            _customerOrder.Tax = (_customerOrder.MaterialCost + _customerOrder.LaborCost) * (_customerOrder.TaxRate/100);
            _customerOrder.Total = _customerOrder.MaterialCost + _customerOrder.LaborCost + _customerOrder.Tax;
        }
        public void GetProductType()
        {
            string input = "";

            var ops = new ProductOperations();
            var productInfo = ops.GetProductInfo();

            var products = productInfo.Select(product => product.ProductType.ToLower()).ToList();

            do
            {

                Console.Clear();
                Console.WriteLine("Product Type Options");
                Console.WriteLine("--------------------");
                Console.WriteLine();
                foreach (var product in products)
                {
                    Console.Write("{0} ", product.ToLower());
                }
                Console.WriteLine();
                Console.Write("\nEnter Product Type: ");
                input = Console.ReadLine().ToLower();

                if (products.Contains(input))
                {
                    _newOrder.ProductInfo.ProductType = input;
                    return;
                }

                Console.WriteLine();
                Console.WriteLine("That was not a valid product type.");
                Console.Write("\nPress enter to continue...");
                ErrorLogOperations.LogError(string.Format("Add Order: Invalid Product Type entered: {0}", input));
                Console.ReadLine();
            } while (true);
        }
        public void PromptUserForPT()
        {
            string input = "";

            var ops = new ProductOperations();
            var productInfo = ops.GetProductInfo();

            var products = productInfo.Select(product => product.ProductType.ToLower()).ToList();

            do
            {

                Console.Clear();
                Console.WriteLine("Product Type Options");
                Console.WriteLine("--------------------");
                Console.WriteLine();
                foreach (var product in products)
                {
                    Console.Write("{0} ", product.ToLower());
                }
                Console.WriteLine();
                Console.Write("\nEnter Product Type ({0}): ", _customerOrder.ProductInfo.ProductType);
                string newPT = Console.ReadLine().ToLower();

                if (products.Contains(newPT) || newPT == "")
                {
                    if (newPT == "")
                    {
                        return;
                    }
                    else
                    {
                        _customerOrder.ProductInfo.ProductType = newPT;
                        return;
                    }
                }

                Console.WriteLine();
                Console.WriteLine("That was not a valid product type.");
                Console.Write("\nPress enter to continue...");
                ErrorLogOperations.LogError(string.Format("Edit Order: Invalid Product Type entered: {0}", input));
                Console.ReadLine();
            } while (true);
        }