/// <summary>
        /// Get type of product from user. Checks if product already exist in invetory
        /// </summary>
        /// <param name="salesperson"></param>
        /// <param name="notInStock"></param>
        /// <returns></returns>
        public Product.ProductType GetTypeOfProduct(Salesperson salesperson, string buyOrSell, out bool inStock)
        {
            Product.ProductType productType;
            inStock = false;

            ConsoleUtil.DisplayPromptMessage("Enter the type of product you wish to " + buyOrSell + ":");

            // new variable for product type
            if (Enum.TryParse <Product.ProductType>(UppercaseFirst(Console.ReadLine()), out productType))
            {
                foreach (Product product in salesperson.CurrentStock)
                {
                    if (product.Type == productType)
                    {
                        inStock = true;
                    }
                }
            }
            else
            {
                // sets type of current stock to "none" product type
                ConsoleUtil.DisplayMessage("It appears you are having difficulty selecting a product.");
                ConsoleUtil.DisplayMessage("By default, no items will be added.");

                productType = Product.ProductType.None;

                DisplayContinuePrompt();
            }

            return(productType);
        }
Esempio n. 2
0
        /// <summary>
        /// setup the new salesperson object with the initial data
        /// Note: To maintain the pattern of only the Controller changing the data this method should
        ///       return a Salesperson object with the initial data to the controller. For simplicity in
        ///       this demo, the ConsoleView object is allowed to access the Salesperson object's properties.
        /// </summary>
        public Salesperson DisplaySetupAccount()
        {
            Salesperson salesperson = new Salesperson();

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

            ConsoleUtil.DisplayMessage("Setup your account now.");
            ConsoleUtil.DisplayMessage("");

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

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

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

            ConsoleUtil.DisplayMessage("");

            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("Your account is setup");

            DisplayContinuePrompt();

            return(salesperson);
        }
        /// <summary>
        /// setup the new salesperson object with the initial data
        /// </summary>
        public Salesperson DisplaySetupAccount(out City city)
        {
            // instantiate a new salesperson object
            Salesperson salesperson = new Salesperson();

            // instantiayte a new city object
            city           = new City();
            city.SalesInfo = new List <Product>();

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

            ConsoleUtil.DisplayMessage("Setup your account now.");
            ConsoleUtil.DisplayMessage("");

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

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

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

            ConsoleUtil.DisplayPromptMessage("Enter your starting city: ");
            city.CityName = Console.ReadLine();

            // get products from user
            DisplayAvailableProducts();
            ConsoleUtil.DisplayMessage("");

            salesperson.CurrentStock = DisplayGetProducts(salesperson);


            foreach (Product item in salesperson.CurrentStock)
            {
                city.SalesInfo.Add(new Product(item.Type, item.NumberOfUnits, 0));
            }

            // add city object to salesperson
            salesperson.CitiesVisited.Add(city);

            ConsoleUtil.DisplayMessage("Your account is setup");
            ConsoleUtil.DisplayMessage("");

            // display account details to user
            DisplayAccountDetail(salesperson);
            ConsoleUtil.DisplayMessage("Starting city: " + city.CityName);
            ConsoleUtil.DisplayMessage("Your current inventory:");
            ConsoleUtil.DisplayMessage("");
            CurrentInventory(salesperson);

            DisplayContinuePrompt();

            return(salesperson);
        }
Esempio n. 4
0
        /// <summary>
        /// get the next city to travel to from the user
        /// </summary>
        /// <returns>string City</returns>
        public string DisplayGetNextCity()
        {
            string nextCity = "";

            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayPromptMessage("Enter the name of the next city:");
            nextCity = Console.ReadLine();

            return(nextCity);
        }
        /// <summary>
        /// helper method to get a valid string response from the user
        /// based on John Velis' GetYesNoFromUser method
        /// </summary>
        /// <param name="maxAttempts">maximum number of attempts</param>
        /// <param name="userPrompt">user prompt</param>
        /// <param name="maxAttemptsExceeded">indicates whether maximum number of attempts has been reached</param>
        /// <returns></returns>
        public static string TestForEmpty(int maxAttempts, string userPrompt, out bool maxAttemptsExceeded)
        {
            bool validInput = false;

            maxAttemptsExceeded = false;
            string userResponse = "";
            int    attempts     = 1;

            while (!validInput && !maxAttemptsExceeded)
            {
                //Console.Write(userPrompt);
                ConsoleUtil.DisplayPromptMessage(userPrompt);
                userResponse = Console.ReadLine();
                ConsoleUtil.DisplayMessage("");

                //
                // input is valid
                //
                if (!string.IsNullOrEmpty(userResponse))
                {
                    validInput = true;
                }
                //
                // input is invalid, but more attempts available
                //
                else
                {
                    //
                    // more attempts available
                    //
                    if (attempts < maxAttempts)
                    {
                        ConsoleUtil.DisplayMessage("Please enter a non-empty value.");
                        ConsoleUtil.DisplayMessage("Press any key to try again.");
                    }
                    //
                    // all attempts used
                    //
                    else
                    {
                        ConsoleUtil.DisplayMessage("It appears you have exceeded the maximum number of attempts allowed.");
                        ConsoleUtil.DisplayMessage("Press any key to continue.");
                        maxAttemptsExceeded = true;
                    }

                    Console.ReadKey();
                    Console.Clear();
                }

                attempts++;
            }

            return(userResponse);
        }
Esempio n. 6
0
        /// <summary>
        /// get the next city to travel to from the user
        /// </summary>
        /// <returns>string nextCity</returns>
        public string DisplayGetNextCity(Salesperson salesperson)
        {
            string nextCity = "";

            ConsoleUtil.HeaderText = "Travel";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayPromptMessage("Where would you like to travel to?");
            salesperson.CitiesVisited.Add(Console.ReadLine());


            return(nextCity);
        }
        /// <summary>
        /// helper method to get a valid decimal response from the user
        /// based on John Velis's GetYesNoFromUser method
        /// </summary>
        /// <param name="maxAttempts">maximum number of attempts</param>
        /// <param name="userPrompt">user prompt</param>
        /// <param name="maxAttemptsExceeded">indicates whether maximum number of attempts has been reached</param>
        /// <returns>double</returns>
        public static double TestForDouble(int maxAttempts, string userPrompt, out bool maxAttemptsExceeded)
        {
            bool validInput = false;

            maxAttemptsExceeded = false;
            double dub = 0.00;
            string userResponse;
            int    attempts = 1;

            while (!validInput && !maxAttemptsExceeded)
            {
                ConsoleUtil.DisplayPromptMessage(userPrompt);
                userResponse = Console.ReadLine();
                ConsoleUtil.DisplayMessage("");

                //
                // input is valid
                //
                if (double.TryParse(userResponse, out dub))
                {
                    validInput = true;
                }
                else
                {
                    //
                    // more attempts available
                    //
                    if (attempts < maxAttempts)
                    {
                        ConsoleUtil.DisplayMessage("Please enter a monetary value without a currency symbol");
                        ConsoleUtil.DisplayMessage("Press any key to try again.");
                    }
                    //
                    // all attempts used
                    //
                    else
                    {
                        ConsoleUtil.DisplayMessage("It appears you have exceeded the maximum number of attempts allowed.");
                        ConsoleUtil.DisplayMessage("Press any key to continue.");
                        maxAttemptsExceeded = true;
                    }

                    Console.ReadKey();
                    Console.Clear();
                }

                attempts++;
            }

            return(dub);
        }
        /// <summary>
        /// setup the new salesperson object with the initial data
        /// Note: To maintain the pattern of only the Controller changing the data this method should
        ///       return a Salesperson object with the initial data to the controller. For simplicity in
        ///       this demo, the ConsoleView object is allowed to access the Salesperson object's properties.
        /// </summary>
        public Salesperson DisplaySetupAccount()
        {
            Salesperson salesperson = new Salesperson();

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

            ConsoleUtil.DisplayPromptMessage("First Name:");
            salesperson.FirstName = Console.ReadLine();

            ConsoleUtil.DisplayPromptMessage("Last Name:", 2);
            salesperson.LastName = Console.ReadLine();

            ConsoleUtil.DisplayPromptMessage("Account ID:");
            salesperson.AccountID = Console.ReadLine();

            ConsoleUtil.DisplayPromptMessage("City: ");
            salesperson.CitiesVisited.Add(Console.ReadLine());


            return(salesperson);
        }
        /// <summary>
        /// method displays menu system that allow the user to update account info of their choosing
        /// </summary>
        /// <param name="salesperson"></param>
        /// <returns></returns>
        public Salesperson DisplayUpdateAccount(Salesperson salesperson)
        {
            bool usingMenu = true;

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

            while (usingMenu)
            {
                // display account details to user
                DisplayAccountDetail(salesperson);

                ConsoleUtil.DisplayMessage("");
                ConsoleUtil.DisplayMessage("Type the number for which info you wish to update: ");
                ConsoleUtil.DisplayMessage("");
                Console.Write(
                    "\t" + "1. First Name" + Environment.NewLine +
                    "\t" + "2. Last Name" + Environment.NewLine +
                    "\t" + "3. Account ID" + Environment.NewLine +
                    "\t" + "E. Main Menu" + Environment.NewLine);

                //
                // get and process the user's response
                ConsoleKeyInfo userResponse = Console.ReadKey(true);
                switch (userResponse.KeyChar)
                {
                case '1':
                    ConsoleUtil.DisplayReset();
                    ConsoleUtil.DisplayMessage("");
                    ConsoleUtil.DisplayPromptMessage("Update your first name:");
                    salesperson.FirstName = Console.ReadLine();
                    ConsoleUtil.DisplayReset();
                    break;

                case '2':
                    ConsoleUtil.DisplayReset();
                    ConsoleUtil.DisplayMessage("");
                    ConsoleUtil.DisplayPromptMessage("Update your last name:");
                    salesperson.LastName = Console.ReadLine();
                    ConsoleUtil.DisplayReset();
                    break;

                case '3':
                    ConsoleUtil.DisplayReset();
                    ConsoleUtil.DisplayMessage("");
                    ConsoleUtil.DisplayPromptMessage("Update your account ID name:");
                    salesperson.AccountID = Console.ReadLine();
                    ConsoleUtil.DisplayReset();
                    break;

                case 'E':
                case 'e':
                    usingMenu = false;
                    break;

                default:
                    ConsoleUtil.DisplayMessage(
                        "It appears you have selected an incorrect choice." + Environment.NewLine +
                        "Press any key to return to continue");
                    userResponse = Console.ReadKey(true);
                    break;
                }
            }

            DisplayContinuePrompt();

            return(salesperson);
        }
Esempio n. 10
0
        /// <summary>
        /// helper method to get a valid integer from the user within a range
        /// </summary>
        /// <param name="minValue">inclusive minimum value</param>
        /// <param name="maxValue">inclusive maximum value</param>
        /// <param name="maxAttempts">maximum number of attempts</param>
        /// <param name="pluralName">plural name of item</param>
        /// <param name="validInput">indicates valid user input</param>
        /// <returns></returns>
        public static bool TryGetIntegerFromUser(int minValue, int maxValue, int maxAttempts, string pluralName, out int userInteger)
        {
            bool   validInput          = false;
            bool   maxAttemptsExceeded = false;
            string userResponse;
            string feedbackMessage = "";
            int    attempts        = 1;

            userInteger = 0;

            while (!validInput && !maxAttemptsExceeded)
            {
                //
                // more attempts available
                //
                if (attempts <= maxAttempts)
                {
                    ConsoleUtil.DisplayPromptMessage($"Enter the number, between {minValue} and {maxValue}, of {pluralName}:");
                    userResponse = Console.ReadLine();
                    ConsoleUtil.DisplayMessage("");

                    //
                    // input is an Integer
                    //
                    if (int.TryParse(userResponse, out userInteger))
                    {
                        //
                        // input is in range
                        //
                        if (userInteger >= minValue && userInteger <= maxValue)
                        {
                            validInput = true;
                        }
                        //
                        // input is not in range
                        //
                        else
                        {
                            feedbackMessage = $"The number {userInteger} is not in the specified range.";
                        }
                    }
                    //
                    // input is not an Integer
                    //
                    else
                    {
                        feedbackMessage = $"{userResponse} is not an integer.";
                    }

                    if (!validInput && attempts <= maxAttempts)
                    {
                        ConsoleUtil.DisplayMessage($"You entered: {userResponse}");
                        ConsoleUtil.DisplayMessage(feedbackMessage);

                        if (attempts < maxAttempts)
                        {
                            ConsoleUtil.DisplayMessage($"Please enter an integer between {minValue} and {maxValue}.");
                            ConsoleUtil.DisplayMessage("Press any key to try again.");
                            Console.ReadKey();
                        }
                        else
                        {
                            ConsoleUtil.DisplayMessage("It appears you have exceeded the maximum number of attempts allowed.");
                            ConsoleUtil.DisplayMessage("Press any key to continue.");
                            Console.ReadKey();
                        }

                        Console.Clear();
                    }
                    else
                    {
                        ConsoleUtil.DisplayMessage("");
                    }

                    attempts++;
                }
                else
                {
                    maxAttemptsExceeded = true;
                }
            }

            return(validInput);
        }