/// <summary>
        /// prompts the user to save the account and travel log info
        /// </summary>
        public bool DisplaySaveAccountInfo(Salesperson salesperson, out bool maxAttemptsExceeded)
        {
            string userResponse;

            maxAttemptsExceeded = false;

            ConsoleUtil.HeaderText = "Save Account";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("Current account information:");
            DisplayAccountDetail(salesperson);

            ConsoleUtil.DisplayMessage("");
            userResponse = ConsoleValidator.GetYesNoFromUser(MAXIMUM_ATTEMPTS, "Save account info?", out maxAttemptsExceeded);

            if (maxAttemptsExceeded)
            {
                ConsoleUtil.DisplayMessage("Max attempts exceeded! You will now be returned to the main menu.");
                return(false);
            }
            else if (userResponse.ToUpper() == "YES")
            {
                return(true);
            }
            {
                return(false);
            }
        }
        /// <summary>
        /// prompts the user to load the account and travel log info
        /// </summary>
        public bool DisplayLoadAccountInfo(out bool maxAttemptsExceeded)
        {
            string userResponse;

            maxAttemptsExceeded = false;

            ConsoleUtil.HeaderText = "Load Account";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("");
            userResponse = ConsoleValidator.GetYesNoFromUser(MAXIMUM_ATTEMPTS, "Load account info?", out maxAttemptsExceeded);

            if (maxAttemptsExceeded)
            {
                ConsoleUtil.DisplayMessage("Max attempts exceeded! You will now be returned to the main menu.");
                return(false);
            }
            else if (userResponse.ToUpper() == "YES")
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        /// <summary>
        /// allows the user to update their account information
        /// </summary>
        public Salesperson DisplayUpdateAcountInfo(Salesperson salesperson, out bool maxAttemptsExceeded)
        {
            string userResponse;
            bool   editingAccount = true;

            maxAttemptsExceeded = false;

            ConsoleUtil.HeaderText = "Update Account";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("");
            ConsoleUtil.DisplayMessage(" NOTE: You cannot change the number units here. Use the Buy/Sell options \nfrom the main menu to do that.");

            DisplayContinuePrompt();

            while (editingAccount)
            {
                ConsoleUtil.HeaderText = "Update Account";
                ConsoleUtil.DisplayReset();

                //
                // displays current account info wihtout cities and number of units
                //
                #region Current Account Info

                ConsoleUtil.DisplayMessage("Current account info:");
                ConsoleUtil.DisplayMessage("");

                ConsoleUtil.DisplayMessage("First Name: " + salesperson.FirstName);
                ConsoleUtil.DisplayMessage("Last Name: " + salesperson.LastName);
                ConsoleUtil.DisplayMessage("Account ID: " + salesperson.AccountID);
                ConsoleUtil.DisplayMessage("Starting City: " + salesperson.StartingCity);
                ConsoleUtil.DisplayMessage("Product Type: " + salesperson.CurrentStock.Type);

                #endregion

                ConsoleUtil.DisplayMessage("");
                ConsoleUtil.DisplayMessage("Please select a corresonding number to change that part of your account.");
                ConsoleUtil.DisplayMessage("");

                ConsoleUtil.DisplayPromptMessage("1)First Name | 2)Last Name | 3)Account ID | 4)Starting City | 5)Product");

                ConsoleUtil.DisplayMessage("");
                ConsoleUtil.DisplayMessage("");
                ConsoleUtil.DisplayMessage("");
                ConsoleUtil.DisplayPromptMessage("Enter your choice here: ");
                userResponse = Console.ReadLine();
                ConsoleUtil.DisplayMessage("");

                //
                // get a valid answer form user
                //
                while (userResponse != "1" && userResponse != "2" && userResponse != "3" && userResponse != "4" && userResponse != "5")
                {
                    ConsoleUtil.HeaderText = "Invalid Input";
                    ConsoleUtil.DisplayReset();

                    ConsoleUtil.DisplayPromptMessage("1)First Name | 2)Last Name | 3)Account ID | 4)Starting City | 5)Product");
                    ConsoleUtil.DisplayMessage("");
                    ConsoleUtil.DisplayPromptMessage("Please enter a correct corresponding number: ");
                    userResponse = Console.ReadLine();

                    if (userResponse == "1" && userResponse == "2" && userResponse == "3" && userResponse == "4" && userResponse == "5")
                    {
                        break;
                    }
                }

                //
                // edit account info
                //
                switch (userResponse)
                {
                case "1":
                    ConsoleUtil.HeaderText = "Update First Name";
                    ConsoleUtil.DisplayReset();

                    ConsoleUtil.DisplayPromptMessage("Enter your new first name: ");
                    salesperson.FirstName = Console.ReadLine();
                    ConsoleUtil.DisplayMessage("");
                    break;

                case "2":
                    ConsoleUtil.HeaderText = "Update Last Name";
                    ConsoleUtil.DisplayReset();

                    ConsoleUtil.DisplayPromptMessage("Enter your new last name: ");
                    salesperson.LastName = Console.ReadLine();
                    ConsoleUtil.DisplayMessage("");
                    break;

                case "3":
                    ConsoleUtil.HeaderText = "Update Account ID";
                    ConsoleUtil.DisplayReset();

                    ConsoleUtil.DisplayPromptMessage("Enter your new Account ID: ");
                    salesperson.AccountID = Console.ReadLine();
                    ConsoleUtil.DisplayMessage("");
                    break;

                case "4":
                    ConsoleUtil.HeaderText = "Update Starting City";
                    ConsoleUtil.DisplayReset();

                    ConsoleUtil.DisplayPromptMessage("Enter your new starting city: ");
                    salesperson.StartingCity = Console.ReadLine();
                    ConsoleUtil.DisplayMessage("");
                    break;

                case "5":
                    ConsoleUtil.HeaderText = "Update Product Type";
                    ConsoleUtil.DisplayReset();

                    Product.ProductType productType;

                    ConsoleUtil.DisplayMessage("");
                    ConsoleUtil.DisplayPromptMessage("Enter you new product selection: ");

                    //
                    // get new product type from user
                    //
                    if (Enum.TryParse <Product.ProductType>(UppercaseFirst(Console.ReadLine()), out productType))
                    {
                        salesperson.CurrentStock.Type = productType;
                    }
                    else
                    {
                        ConsoleUtil.DisplayReset();
                        ConsoleUtil.DisplayMessage("Seems like you entered an invalid product type.");
                        ConsoleUtil.DisplayMessage("By default, your product type has been set to None.");
                        salesperson.CurrentStock.Type = Product.ProductType.None;
                        DisplayContinuePrompt();
                    }
                    break;

                default:
                    break;
                }
                ConsoleUtil.HeaderText = "Update Account";
                ConsoleUtil.DisplayReset();
                ConsoleUtil.DisplayMessage("Your account has been updated!");
                ConsoleUtil.DisplayMessage("");
                userResponse = ConsoleValidator.GetYesNoFromUser(MAXIMUM_ATTEMPTS, "\tWould you like to make more changes or continue on?", out maxAttemptsExceeded);

                if (maxAttemptsExceeded)
                {
                    ConsoleUtil.DisplayMessage("Max attempts exceeded! You will now be returned to the main menu.");
                    return(salesperson);
                }
                else if (userResponse.ToUpper() == "YES")
                {
                    editingAccount = true;
                }
                else
                {
                    editingAccount = false;
                    return(salesperson);
                }
            }
            return(salesperson);
        }