コード例 #1
0
        public void addProduct(Customer activeCustomer)
        {
SHOWPRODUCTS:
            Console.Clear();
            _consoleHelper.WriteHeaderToConsole("Add Products to Cart");
            ProductRepository repo = new ProductRepository();

            var products = repo.GetAllProducts();

            _consoleHelper.WriteLine("Opt Product               Price                        ");
            Console.ForegroundColor = ConsoleColor.DarkCyan;
            _consoleHelper.WriteLine("*********************************************************");
            Console.ForegroundColor = ConsoleColor.White;
            char spacePad = ' ';

            foreach (Product product in products)
            {
                StringBuilder productIdString = new StringBuilder();
                string        productId       = productIdString.Append(product.ProductId.ToString()).Append(".").ToString();
                _consoleHelper.WriteLine(productId.PadRight(8, spacePad).Substring(0, 4) + product.ProductName.PadRight(22, spacePad).Substring(0, 22) + "$" + product.ProductPrice.ToString().PadLeft(7, spacePad));
            }
            Console.ForegroundColor = ConsoleColor.DarkCyan;
            _consoleHelper.WriteLine("*********************************************************");
            Console.ForegroundColor = ConsoleColor.White;
            var    cartRepo      = new CartRepository();
            var    activeCart    = cartRepo.GetActiveCart(activeCustomer.CustomerId);
            string cartTotalLine = $"Total: ({cartDetail.GetTotalItemsInCart(activeCart.CartId)}) {cartDetail.GetCartPrice(activeCart.CartId)}";
            string space         = new string(' ', (56 - cartTotalLine.Length));

            _consoleHelper.WriteLine(space + cartTotalLine);
            _consoleHelper.WriteLine($"{products.Count + 1}" + ".  Save Cart and Return to Main Menu");
            _consoleHelper.WriteLine($"{products.Count + 2}" + ".  Checkout\n");
            try
            {
                var selectedProduct = Convert.ToInt32(_consoleHelper.WriteAndReadFromConsole("> "));

                if (selectedProduct >= 1 && selectedProduct <= products.Count)
                {
                    var cartDetail = new CartDetailRepository();
                    cartDetail.AddProduct(activeCart.CartId, selectedProduct, 1);
                    _consoleHelper.WriteLine("One item has been put into your cart.");
                    Thread.Sleep(500);
                    goto SHOWPRODUCTS;
                }
                else if (selectedProduct == products.Count + 1)
                {
                    return;
                }
                else if (selectedProduct == products.Count + 2)
                {
                    checkout(activeCustomer);
                }
                else
                {
                    _consoleHelper.WriteLine("Please choose a valid product number!");
                    goto SHOWPRODUCTS;
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                Debug.WriteLine(ex.StackTrace);
                _consoleHelper.WriteLine("Please enter the numbers showed on screen!");
                Thread.Sleep(1000);
                goto SHOWPRODUCTS;
            }
        }