示例#1
0
        public int DisplayGetNumberOfUnitsToBuy(Product product)
        {
            ConsoleUtil.HeaderText = "Buy Inventory";
            ConsoleUtil.DisplayReset();

            //GEt number of products to buy

            ConsoleUtil.DisplayMessage("Buying " + product.Type.ToString() + " products.");
            ConsoleUtil.DisplayMessage("");

            if (!ConsoleValidator.TryGetIntegerFromUser(MINIMUM_BUYSELL_AMOUNT, MAXIMUM_BUYSELL_AMOUNT, MAXIMUM_ATTEMPTS, "products", out int numberOfUnitsToBuy))
            {
                ConsoleUtil.DisplayMessage("It appears you are having difficulty setting the number of products to buy.");
                ConsoleUtil.DisplayMessage("By default, the number of products to Buy will be set to zero.");
                numberOfUnitsToBuy = 0;
                DisplayContinuePrompt();
            }
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage(numberOfUnitsToBuy + " " + product.Type.ToString() + " products have been added to the inventory.");

            DisplayContinuePrompt();

            return(numberOfUnitsToBuy);
        }
示例#2
0
        public int DisplayGetNumberOfUnitsToSell(Product product)
        {
            ConsoleUtil.HeaderText = "Sell Inventory";
            ConsoleUtil.DisplayReset();

            //get number of products to sell

            ConsoleUtil.DisplayMessage("Selling " + product.Type.ToString() + " products.");
            ConsoleUtil.DisplayMessage("");

            if (!ConsoleValidator.TryGetIntegerFromUser(MINIMUM_BUYSELL_AMOUNT, MAXIMUM_BUYSELL_AMOUNT, MAXIMUM_ATTEMPTS, "products", out int numberOfUnitsToSell))
            {
                ConsoleUtil.DisplayMessage("It appears you are having difficulty setting the number of products to Sell.");
                ConsoleUtil.DisplayMessage("By default, the number of products to sell will be set to zero.");
                numberOfUnitsToSell = 0;
                DisplayContinuePrompt();
            }

            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage(numberOfUnitsToSell + " " + product.Type.ToString() + " products have been subrtracted from the inventory.");

            DisplayContinuePrompt();

            return(numberOfUnitsToSell);
        }
        /// <summary>
        /// prompts the user to save account and travel log
        /// </summary>
        /// <param name="salesperson"></param>
        /// <param name="maxAttemptsExceeded"></param>
        /// <returns></returns>
        public bool DisplaySaveAccountInfo(Salesperson salesperson, out bool maxAttemptsExceeded)
        {
            string userResponse;

            maxAttemptsExceeded = false;

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

            ConsoleUtil.DisplayMessage("The current account information.");
            DisplayAccountDetail(salesperson);

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

            if (maxAttemptsExceeded)
            {
                ConsoleUtil.DisplayMessage("It appears you are having difficulties. You will return to the main menu.");
                return(false);
            }
            else
            {
                // note use of ternary operator (takes three arguments)
                return(userResponse == "YES" ? true : false);
            }
        }
示例#4
0
        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("Product Types");
            ConsoleUtil.DisplayMessage("");

            ConsoleUtil.DisplayMessage("");

            ConsoleUtil.DisplayReset();

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

            DisplayContinuePrompt();

            return(salesperson);
        }
示例#5
0
        /// <summary>
        /// display a closing screen when the user quits the application
        /// </summary>

        public void DisplayClosingScreen()
        {
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("Thank you for using The Traveling Salesperson Application.");

            DisplayContinuePrompt();
        }
        // Display a backorder message
        public void DisplayBackorderMessage()
        {
            ConsoleUtil.HeaderText = "Alert";
            ConsoleUtil.DisplayReset();

            Console.WriteLine("This unit is on backorder!");
            Console.ReadLine();
        }
示例#7
0
        public void DisplayInventoryError()
        {
            ConsoleUtil.HeaderText = "Inventory Warning";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("You need to use the \"Add Inventory\" option before buying or selling murchandise!");

            DisplayContinuePrompt();
        }
示例#8
0
        public void DisplayConfirmLoadAccountInfo(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Load Account";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("Account information loaded.");

            DisplayAccountInfo(salesperson, false);
        }
示例#9
0
        public void DisplayConfirmSaveAccountInfo()
        {
            ConsoleUtil.HeaderText = "Save Account";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("Account information saved.");

            DisplayContinuePrompt();
        }
        /// <summary>
        /// display the current account information
        /// </summary>
        ///         /// <param name="salesperson">Salesperson object</param>
        public void DisplayAccountInfo(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Account Info";
            ConsoleUtil.DisplayReset();

            DisplayAccountDetail(salesperson);

            DisplayContinuePrompt();
        }
        // Prompt user to enter number of units to sell
        public int DisplayGetNumberOfUnitsToSell(Product product)
        {
            ConsoleUtil.HeaderText = "Sell";
            ConsoleUtil.DisplayReset();

            Console.WriteLine("Enter the number of units to sell: ");
            int unitsToSell = Convert.ToInt32(Console.ReadLine());

            return(unitsToSell);
        }
示例#12
0
        /// <summary>
        /// get the menu choice from the user
        /// </summary>
        public string DisplayGetUserMenuChoice()
        {
            string userMenuChoice = "0";
            int    namesCount     = MenuOption.MainOption.Count();
            bool   usingMenu      = true;

            while (usingMenu)
            {
                //
                // set up display area
                //
                ConsoleUtil.HeaderText = "Main Menu";
                ConsoleUtil.DisplayReset();
                Console.CursorVisible = false;

                //
                // display the menu
                //
                ConsoleUtil.DisplayMessage("Please type the number of your menu choice.");
                ConsoleUtil.DisplayMessage("");

                List <string> keyList = new List <string>(MenuOption.MainOption.Keys);
                for (int i = 1; i < namesCount; i++)
                {
                    Console.Write("\t" + keyList[i].ToUpper() + ". " + MenuOption.MainOption[keyList[i]] + Environment.NewLine);
                }

                //
                // get and process the user's response
                // note: ReadKey argument set to "true" disables the echoing of the key press
                //
                ConsoleKeyInfo userResponse = Console.ReadKey(true);

                if (!MenuOption.MainOption.ContainsKey(userResponse.KeyChar.ToString()))
                {
                    ConsoleUtil.DisplayMessage(
                        "It appears you have selected an incorrect choice." + Environment.NewLine +
                        "Press any key to continue or the ESC key to quit the application.");

                    userResponse = Console.ReadKey(true);
                    if (userResponse.Key == ConsoleKey.Escape)
                    {
                        usingMenu = false;
                    }
                    break;
                }

                userMenuChoice = userResponse.KeyChar.ToString();

                usingMenu = false;
            }
            Console.CursorVisible = true;

            return(userMenuChoice);
        }
        /// <summary>
        /// display the current inventory
        /// </summary>
        public void DisplayInventory(Product product)
        {
            ConsoleUtil.HeaderText = "Current Inventory";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("Product type: " + product.Type.ToString());
            ConsoleUtil.DisplayMessage("Number of units: " + product.NumberOfUnits.ToString());
            ConsoleUtil.DisplayMessage("");

            DisplayContinuePrompt();
        }
示例#14
0
        public void DisplayProdToBuyandSell(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Choosing another product";
            ConsoleUtil.DisplayReset();
            Product.ProductType oldProduct = new Product.ProductType();

            oldProduct = salesperson.CurrentStock.Type;

            int attempts = 0;

            bool productSelected = false;

            while (MAXIMUM_ATTEMPTS > attempts && !productSelected)
            {
                ConsoleUtil.DisplayMessage("Enter on of the following products to buy and sell: ");
                ConsoleUtil.DisplayPromptMessage(Product.ProductType.Dancing.ToString() +
                                                 " " + Product.ProductType.Furry.ToString() + " " + Product.ProductType.Spotted.ToString() + " : ");
                string ProductType = Console.ReadLine();
                switch (UppercaseFirst(ProductType))
                {
                case "Furry":
                    salesperson.CurrentStock.Type = Product.ProductType.Furry;
                    productSelected = true;
                    break;

                case "Dancing":
                    salesperson.CurrentStock.Type = Product.ProductType.Dancing;
                    productSelected = true;
                    break;

                case "Spotted":
                    salesperson.CurrentStock.Type = Product.ProductType.Spotted;
                    productSelected = true;
                    break;

                default:
                    ConsoleUtil.DisplayMessage("You did not enter one of the Available products");
                    salesperson.CurrentStock.Type = Product.ProductType.None;
                    break;
                }
                attempts++;
            }

            if (oldProduct == salesperson.CurrentStock.Type)
            {
                ConsoleUtil.DisplayMessage("You decided not change the product you were selling");
            }
            else if (oldProduct != salesperson.CurrentStock.Type)
            {
                ConsoleUtil.DisplayMessage("You discard your " + oldProduct.ToString() + " product to make room for " + salesperson.CurrentStock.Type + " product.");
                salesperson.CurrentStock.ResetProductAmount();
            }
            DisplayContinuePrompt();
        }
示例#15
0
        /// <summary>
        /// display the current account information
        /// </summary>
        public void DisplayAccountInfo(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Account Info";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("First Name: " + salesperson.FirstName);
            ConsoleUtil.DisplayMessage("Last Name: " + salesperson.LastName);
            ConsoleUtil.DisplayMessage("Account ID: " + salesperson.AccountID);

            DisplayContinuePrompt();
        }
示例#16
0
        public void DisplayConfirmLoadAccountInfo(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Load Account";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("Account information loaded");

            DisplayAccountDetail(salesperson);

            DisplayContinuePrompt();
        }
示例#17
0
        /// <summary>
        /// tells user of successful save of account and travel info
        /// </summary>
        /// <param name="_salesperson"></param>
        public void DisplayConfirmSaveAccountInfo(Salesperson _salesperson)
        {
            ConsoleUtil.HeaderText = "Save Account";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("Account information has been successfully saved\n");

            DisplayAccountDetails(_salesperson);

            DisplayContinuePrompt();
        }
示例#18
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.DisplayMessage("Enter the name of the city: ");
            nextCity = Console.ReadLine();

            return(nextCity);
        }
示例#19
0
        public void DisplayLogs(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Logs";
            ConsoleUtil.DisplayReset();

            foreach (string log in salesperson.Logs)
            {
                ConsoleUtil.DisplayMessage(log);
            }

            DisplayContinuePrompt();
        }
        // Prompt the user to edit their Last Name
        public string EditLastName()
        {
            string lastName;

            ConsoleUtil.HeaderText = "Edit Last Name";
            ConsoleUtil.DisplayReset();

            Console.WriteLine("Change last name to: ");
            lastName = Console.ReadLine();

            return(lastName);
        }
        // Prompt the user to edit their Account ID
        public string EditAccountID()
        {
            string accountID;

            ConsoleUtil.HeaderText = "Edit Account ID";
            ConsoleUtil.DisplayReset();

            Console.WriteLine("Change Account ID to: ");
            accountID = Console.ReadLine();

            return(accountID);
        }
示例#22
0
        /// <summary>
        /// display a list of the cities traveled
        /// </summary>

        public void DisplayCitiesTraveled(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Cities Traveled";
            ConsoleUtil.DisplayReset();

            foreach (string city in salesperson.CitiesVisited)
            {
                ConsoleUtil.DisplayMessage(city);
            }

            DisplayContinuePrompt();
        }
        // Prompt the user to edit their age
        public int EditAge()
        {
            int age;

            ConsoleUtil.HeaderText = "Edit Age";
            ConsoleUtil.DisplayReset();

            Console.WriteLine("Change age to: ");
            age = Convert.ToInt32(Console.ReadLine());

            return(age);
        }
示例#24
0
        /// <summary>
        /// add the next city location to the list of cities
        /// </summary>
        private void Travel()
        {
            ConsoleUtil.HeaderText = "Traveling";
            ConsoleUtil.DisplayReset();

            string nextCity = _consoleView.DisplayGetNextCity();

            if (nextCity != "")
            {
                _salesperson.CitiesVisited.Add(nextCity);
            }
        }
示例#25
0
        /// <summary>
        /// display the Exit prompt on a clean screen
        /// </summary>
        public void DisplayExitPrompt()
        {
            ConsoleUtil.HeaderText = "Exit";
            ConsoleUtil.DisplayReset();

            Console.CursorVisible = false;

            ConsoleUtil.DisplayMessage("");
            ConsoleUtil.DisplayMessage("Thank you for using the application. Press any key to Exit.");

            Console.ReadKey();
        }
示例#26
0
        /// <summary>
        /// display the Exit prompt on a clean screen
        /// </summary>

        public void DisplayExitPrompt()
        {
            ConsoleUtil.DisplayReset();

            Console.CursorVisible = false;

            ConsoleUtil.DisplayMessage("");
            ConsoleUtil.DisplayMessage("Thank you for using the application. Press any key to Exit.");

            Console.ReadKey();

            System.Environment.Exit(1);
        }
示例#27
0
        /// <summary>
        /// get the next city to travel to from the user
        /// </summary>
        /// <returns>string City</returns>
        public string DisplayGetNextCity()
        {
            ConsoleUtil.HeaderText = "Travel";

            string nextCity = "";

            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("Enter the next city would like to travel to: ");
            nextCity = Console.ReadLine();

            return(nextCity);
        }
示例#28
0
        public void DisplayBackorderNotification(Product product, int numberOfUnitsSold)
        {
            ConsoleUtil.HeaderText = "Backordered Inventory!";
            ConsoleUtil.DisplayReset();

            int numberOfUnitsBackordered = Math.Abs(product.NumberOfUnits);
            int numberOfUnitsShipped     = numberOfUnitsSold - numberOfUnitsBackordered;

            ConsoleUtil.DisplayMessage("Products Sold: " + numberOfUnitsSold);
            ConsoleUtil.DisplayMessage("Products Shipped: " + numberOfUnitsShipped);
            ConsoleUtil.DisplayMessage("Products on Backorder: " + numberOfUnitsBackordered);

            DisplayContinuePrompt();
        }
示例#29
0
        /// <summary>
        /// display the inventory information to the user
        /// </summary>
        /// <param name="_salesperson"></param>

        public void DisplayInventory(Salesperson _salesperson)
        {
            ConsoleUtil.HeaderText = "Current Inventory";
            ConsoleUtil.DisplayReset();

            if (_salesperson.Inventory.OnBackorder == true)
            {
                DisplayBackOrderNotification(_salesperson, _salesperson.Inventory.NumberOfUnits);
            }

            ConsoleUtil.DisplayMessage($"Current Inventory: {_salesperson.Inventory.NumberOfUnits} {_salesperson.Inventory.Type} units.");

            DisplayContinuePrompt();
        }
示例#30
0
        public void DisplayInventory(List <Product> product)
        {
            ConsoleUtil.HeaderText = "Current Inventory";
            ConsoleUtil.DisplayReset();

            foreach (Product item in product)
            {
                ConsoleUtil.DisplayMessage("Product type: " + UnderscoreToSpace(item.Type.ToString()));
                ConsoleUtil.DisplayMessage("Number of units: " + item.NumberOfUnits.ToString());
                ConsoleUtil.DisplayMessage("");
            }

            DisplayContinuePrompt();
        }