public ActiveCustomer SelectActiveCustomer()
        {
            var allCustomers        = new List <ActiveCustomer>();
            var activeCustomerQuery = new SelectActiveCustomerQuery();
            var customers           = activeCustomerQuery.SelectActiveCustomer();

            var viewAllCustomers = new View();

            viewAllCustomers.AddMenuText("");
            viewAllCustomers.AddMenuText("Select Customer:");

            foreach (var customer in customers)
            {
                allCustomers.Add(customer);
                viewAllCustomers.AddMenuOption($"{customer.FirstName} {customer.LastName}");
            }

            viewAllCustomers.AddMenuText("Press 0 to go BACK.");

            Console.Write(viewAllCustomers.GetFullMenu());

            var customerSelected = int.Parse(Console.ReadLine().ToString());

            if (customerSelected == 0)
            {
                return(null);
            }
            var selectedCustomer = allCustomers[customerSelected - 1];

            return(allCustomers.First <ActiveCustomer>(x => x == selectedCustomer));
        }
        static void Main(string[] args)
        {
            var mainMenu = new MainView();

            var run = true;

            while (run)
            {
                //MAIN MENU
                string userInput = mainMenu.MainMenu();
                char   input     = Convert.ToChar(userInput);

                switch (input)
                {
                case '0':
                    run = false;
                    break;

                case '1':                         //"Add Customer"
                    var newCreateCustomer = new NewCustomerView();

                    var customerFirstName = newCreateCustomer.GetFirstName();
                    var customerLastName  = newCreateCustomer.GetLastName();
                    var customerStreet    = newCreateCustomer.GetStreet();
                    var customerCity      = newCreateCustomer.GetCity();
                    var customerState     = newCreateCustomer.GetState();
                    var customerZip       = newCreateCustomer.GetZip();
                    var customerPhone     = newCreateCustomer.GetPhone();
                    var customerEmail     = newCreateCustomer.GetEmail();

                    var customerInfo = new InsertCustomerQuery();
                    customerInfo.InsertCustomer(customerFirstName, customerLastName, customerStreet, customerCity, customerState, customerZip, customerPhone, customerEmail);

                    break;

                case '2':                         //"Select Customer"

                    var viewAllCustomers = new AllCustomersView();
                    _selectedCustomer = viewAllCustomers.SelectActiveCustomer();

                    var activeCustomerQuery = new SelectActiveCustomerQuery();
                    var activeCustomers     = activeCustomerQuery.SelectActiveCustomer();

                    // BUY AND SELL SUB MENU
                    var customerSubMenu = new CustomerSubMenuView();
                    var userOption      = customerSubMenu.CustomerSubMenu(_selectedCustomer);
                    var userRole        = Convert.ToChar(userOption);

                    switch (userRole)
                    {
                    case '1':                                     //Buyer Menu
                        var buyerMenu = new BuyerMenuView();
                        buyerMenu.BuyerMenu(_selectedCustomer);

                        break;

                    case '2':                                     //Seller Menu
                        var    sellerMenu  = new SellerMenuView();
                        string sellerInput = sellerMenu.SellerMenu(_selectedCustomer);
                        var    sellerChar  = Convert.ToChar(sellerInput);

                        switch (sellerChar)
                        {
                        case '1':                                                //Add Product
                            var addProductView  = new CreateProductView();
                            var customerId      = (_selectedCustomer.CustomerId);
                            var productTitle    = addProductView.GetProdcutTitle(_selectedCustomer);
                            var productPrice    = addProductView.GetProdcutPrice(_selectedCustomer);
                            var productQuantity = addProductView.GetProdcutQuantity(_selectedCustomer);
                            var addProduct      = new InsertProductQuery();
                            var newProduct      = addProduct.InsertProduct(customerId, productTitle, productPrice, productQuantity);
                            break;

                        case '2':                                                 //Edit Product
                            var viewAllProductsForSeller = new AllProductsForSellerView();
                            var selectedProduct          = viewAllProductsForSeller.SelectProduct(_selectedCustomer);
                            var updateProductView        = new UpdateProductView();

                            var updateProduct   = updateProductView.UpdateProductMenu(selectedProduct, _selectedCustomer);
                            var productSelected = Convert.ToChar(updateProduct);

                            switch (productSelected)
                            {
                            case '1':
                                var title = updateProductView.UpdateTitle();
                                var updateProductTitleQuery = new UpdateProductQueries();
                                var executeUpdateTitle      = updateProductTitleQuery.UpdateProductTitle(selectedProduct.ProductId, title);
                                break;

                            case '2':
                                var price = updateProductView.UpdatePrice();
                                var updateProductPriceQuery = new UpdateProductQueries();
                                var executeUpdatePrice      = updateProductPriceQuery.UpdateProductPrice(selectedProduct.ProductId, price);
                                break;

                            case '3':
                                var quantity = updateProductView.UpdateQuantity();
                                var updateProductQuantityQuery = new UpdateProductQueries();
                                var executeUpdateQuantity      = updateProductQuantityQuery.UpdateProductQuantity(selectedProduct.ProductId, quantity);
                                break;

                            default:                                                             //Default for Update Product Menu
                                break;
                            }
                            break;

                        case '3':                                                 //Delete Product
                            viewAllProductsForSeller = new AllProductsForSellerView();
                            var productToDelete      = viewAllProductsForSeller.SelectProduct(_selectedCustomer);
                            var deleteProduct        = new DeleteProductQuery();
                            var executeDeleteProduct = deleteProduct.DeleteProduct(productToDelete.ProductId);

                            break;

                        case '4':             //Revenue Report
                            var revenueReportView = new RevenueReportView();
                            revenueReportView.RunRevenueReport(_selectedCustomer);
                            break;

                        default:                                                 //Default for Seller Menu
                            break;
                        }

                        break;

                    default:                                     //Default for BUY/SELL Menu
                        break;
                    }

                    break;

                default:                         //Default for Main Menu
                    break;
                }
            }
        }