public void Run()
        {
            bool quit = false;

            #region App Menu
            do
            {
                Console.Clear();
                Helpers.PrintWelcome();
                //Get user option
                userOption = Helpers.GetMenuOption(Menus.Start);
                switch (userOption)
                {
                    #region CASE1: Login with existing user
                case 1:                         //login with existing user
                    Console.Clear();
                    bool   valid = false;
                    bool   end   = false;
                    string phone;
                    do
                    {
                        Console.Write("Enter phone number or enter c to cancel: ");
                        phone = Console.ReadLine();
                        if (phone == "c")
                        {
                            end   = true;
                            valid = true;
                        }
                        else
                        {
                            valid = Helpers.IsValidPhoneNumber(phone);
                            if (!valid)
                            {
                                Helpers.NotValidOption(phone);
                            }
                            var cust = db.Customers.Where(p => p.PhoneNum == phone).FirstOrDefault();
                            if (cust == null)
                            {
                                valid = false;
                                Helpers.NotValidOption(phone);
                            }
                        }
                    } while (!valid);
                    if (end)
                    {
                        break;
                    }
                    CustomerLogic.CustomerOptions(phone);
                    break;
                    #endregion

                    #region CASE2: Create new user
                case 2:                         // create new user
                    Console.Clear();
                    Console.WriteLine("Creating a new user");
                    CustomerLogic.CreateNewCustomer();
                    break;
                    #endregion

                    #region CASE 3: Location sales history
                case 3:                         //location
                    valid = false;
                    end   = false;
                    Console.Clear();
                    string name1;
                    #region Validate user input
                    do
                    {
                        Console.Write("Enter location name or c to cancel: ");
                        name1 = Console.ReadLine();
                        valid = !(string.IsNullOrWhiteSpace(name1));
                        if (name1 == "c")
                        {
                            valid = true;
                            end   = true;
                        }
                        else if (!valid)
                        {
                            Helpers.NotValidOption(name1);
                        }
                        else
                        {
                            valid = LocationLogic.ValidLocation(name1);
                        }
                        if (!valid)
                        {
                            Helpers.NotValidOption(name1);
                        }
                    } while (!valid);
                    if (end)
                    {
                        break;
                    }
                    #endregion
                    //display sales history for location
                    LocationLogic.LocationSales(name1);
                    break;
                    #endregion

                    #region CASE4: Search by name
                case 4:
                    Console.Clear();
                    valid = false;
                    end   = false;
                    string name;

                    #region Validate user input
                    do
                    {
                        Console.Write("Enter customer name or c to cancel: ");
                        name  = Console.ReadLine();
                        valid = !(string.IsNullOrWhiteSpace(name));
                        if (name == "c")
                        {
                            valid = true;
                            end   = true;
                        }
                        else if (!valid)
                        {
                            Helpers.NotValidOption(name);
                        }
                    } while (!valid);
                    if (end)
                    {
                        break;
                    }
                    #endregion

                    Helpers.SearchCustomer(name);
                    break;
                    #endregion

                default:                         //exit program
                    quit = true;
                    break;
                }
                ///usertype? customer or location

                //Display options (customer)
                ///create new order
                ///view order histories
                //OR Display options (location)
                ///search customers by name
                ///display order history of store location
            } while (!quit);
            #endregion
        }
        /// <summary>
        /// Prompts user for option from specified menu
        /// Validates user input based on menu
        /// </summary>
        /// <param name="menu"></param>
        /// <returns int>User option</returns>
        public static int GetMenuOption(Menus menu)
        {
            #region Method variables
            int    choice = 0;
            bool   valid  = false;
            string input;
            #endregion

            #region Menus
            do
            {
                switch (menu)
                {
                    #region Main start menu
                case Menus.Start:                         //Main start menu operations
                    PrintStartMenu();
                    input = Console.ReadLine();
                    //valid = string.IsNullOrWhiteSpace(input);
                    valid = int.TryParse(input, out choice);
                    if (!valid)
                    {
                        Console.Clear();
                        NotValidOption(input);
                    }
                    else if (choice < 1 || choice > 5)
                    {
                        Console.Clear();
                        NotValidOption(input);
                        valid = false;                                 //ensure that valid is false
                    }
                    break;
                    #endregion

                    #region Create customer menu
                case Menus.CreateCustomer:                         //Create customer menu
                    CustomerLogic.PrintCreateCustomerMenu();
                    input = Console.ReadLine();
                    valid = int.TryParse(input, out choice);
                    if (!valid)
                    {
                        Console.Clear();
                        NotValidOption(input);
                    }
                    else if (choice < 1 || choice > 5)
                    {
                        Console.Clear();
                        NotValidOption(input);
                        valid = false;                                 //ensure that valid is false
                    }
                    break;
                    #endregion

                    #region Customer menu
                case Menus.Customer:                         //Customer menu
                    CustomerLogic.PrintCustomerMenu();
                    input = Console.ReadLine();
                    valid = int.TryParse(input, out choice);
                    if (!valid)
                    {
                        Console.Clear();
                        NotValidOption(input);
                    }
                    else if (choice < 1 || choice > 4)
                    {
                        Console.Clear();
                        NotValidOption(input);
                        valid = false;                                 //ensure that valid is false
                    }
                    break;
                    #endregion
                }
            } while (!valid);
            #endregion

            return(choice);
        }