コード例 #1
0
        /// <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);
        }
コード例 #2
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();
        }
コード例 #3
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 Sales Tracker Application.");
            ConsoleUtil.DisplayMessage("If you saved your account information, you can load it next time you use the application.");

            DisplayContinuePrompt();
        }
コード例 #4
0
        /// <summary>
        /// display an error message when an object is null
        /// </summary>
        public void DisplayObjectError(string objectName)
        {
            ConsoleUtil.HeaderText = "Error";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage($"No {objectName} has been selected");

            DisplayContinuePrompt();
        }
コード例 #5
0
        /// <summary>
        /// notifies the user of a successful save of the account and travel log info
        /// </summary>
        public void DisplayConfirmSaveAccountInfo()
        {
            ConsoleUtil.HeaderText = "Save Account Information";
            ConsoleUtil.DisplayReset();

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

            DisplayContinuePrompt();
        }
コード例 #6
0
        /// <summary>
        /// display the current account information
        /// </summary>
        public void DisplayAccountInfo(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Account Information";
            ConsoleUtil.DisplayReset();

            DisplayAccountDetail(salesperson);

            DisplayContinuePrompt();
        }
コード例 #7
0
        /// <summary>
        /// displays the current inventory to the user
        /// </summary>
        /// <param name="product"></param>
        public void DisplayInventory(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Current Inventory";
            ConsoleUtil.DisplayReset();

            // calls method to display inventory
            CurrentInventory(salesperson);

            DisplayContinuePrompt();
        }
コード例 #8
0
        /// <summary>
        /// display account error if there are no account setup or loadded
        /// </summary>
        public void DisplayMissingAccountError()
        {
            ConsoleUtil.HeaderText = "ERROR";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("No Account Info Found.");
            ConsoleUtil.DisplayMessage("Please return to the menu to setup or load your Account.");

            DisplayContinuePrompt();
        }
コード例 #9
0
        /// <summary>
        /// display a closing screen when the user quits the application
        /// </summary>
        public void DisplayClosingScreen()
        {
            ConsoleUtil.DisplayReset();

            Console.WriteLine("Do you wish to exit the application?  Y/N:");
            Console.ReadLine();
            ConsoleUtil.DisplayMessage("Thank you for using The Traveling Salesperson Application.");

            DisplayContinuePrompt();
        }
コード例 #10
0
        /// <summary>
        /// displays the status of 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();
        }
コード例 #11
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();
        }
コード例 #12
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);
        }
コード例 #13
0
        /// <summary>
        /// notifies user of a successful load of the account and travel log info,
        /// and displays the loaded info
        /// </summary>
        /// <param name="salesperson"></param>
        public void DisplayConfirmLoadAccountInfo(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Load Account Information";
            ConsoleUtil.DisplayReset();

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

            DisplayAccountDetail(salesperson);

            DisplayContinuePrompt();
        }
コード例 #14
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);
        }
コード例 #15
0
        /// <summary>
        /// display a list of the cities traveled
        /// </summary>
        public void DisplayCitiesTraveled(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Cities Visited";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("Cities Visited:");
            Console.WriteLine();
            foreach (var city in salesperson.CitiesVisited)
            {
                ConsoleUtil.DisplayMessage(city);
            }
            DisplayContinuePrompt();
        }
コード例 #16
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);
        }
コード例 #17
0
        /// <summary>
        /// displays the status of the current inventory
        /// </summary>
        public void DisplayInventory(Product product)
        {
            ConsoleUtil.HeaderText = "Current Inventory";
            ConsoleUtil.DisplayReset();
            // if(product)
            ConsoleUtil.DisplayMessage("Product type: " + product.Type.ToString());
            ConsoleUtil.DisplayMessage("Number of units: " + product.NumberOfUnits.ToString());
            ConsoleUtil.DisplayMessage("Cost per unit: " + product.Cost.ToString());
            ConsoleUtil.DisplayMessage("Total cost of units: $" + (product.NumberOfUnits * product.Cost).ToString("0.00"));
            ConsoleUtil.DisplayMessage("");

            DisplayContinuePrompt();
        }
コード例 #18
0
        /// <summary>
        /// notify user when units sold exceed units on hand
        /// </summary>
        public void DisplayBackOrderNotification(Product product, int numberOfUnitsSold)
        {
            ConsoleUtil.HeaderText = "Inventory Backorder Notification";
            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();
        }
コード例 #19
0
        /// <summary>
        /// display a list of the cities traveled
        /// </summary>
        public void DisplayCitiesTraveled(Salesperson salesperson)
        {
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("You have traveled to the following cities.");
            ConsoleUtil.DisplayMessage("");

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

            DisplayContinuePrompt();
        }
コード例 #20
0
        /// <summary>
        /// Display purchase menu for the user to choose between buying new or existing products
        /// </summary>
        /// <returns></returns>
        public int DisplayPurchaseMenu()
        {
            int purchaseChoice;

            ConsoleUtil.HeaderText = "Buy Products";
            ConsoleUtil.DisplayReset();
            Console.CursorVisible = false;

            // display the menu
            ConsoleUtil.DisplayMessage("Please type the number of your menu choice.");
            ConsoleUtil.DisplayMessage("");
            Console.Write(
                "\t" + "1. Buy New Products" + Environment.NewLine +
                "\t" + "2. Buy Existing Products" + 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':
                purchaseChoice = 1;
                break;

            case '2':
                purchaseChoice = 2;
                break;

            case 'E':
            case 'e':
                purchaseChoice = 0;
                break;

            default:
                ConsoleUtil.DisplayMessage(
                    "It appears you have selected an incorrect choice." + Environment.NewLine +
                    "Press any key to go back to the main menu.");
                Console.ReadKey();
                purchaseChoice = 0;
                break;
            }

            Console.CursorVisible = true;

            return(purchaseChoice);
        }
コード例 #21
0
        /// <summary>
        /// display the Exit prompt on a clean screen
        /// </summary>
        public void DisplayExitPrompt()
        {
            ConsoleUtil.DisplayReset();


            ConsoleUtil.DisplayReset();

            Console.WriteLine("Do you wish to exit the application?  Y/N:");
            //response = ConsoleValidator.ValidateYN();

            ConsoleKeyInfo userResponse = Console.ReadKey(true);

            switch (userResponse.KeyChar)
            {
            case 'Y':
            case 'y':
                ConsoleUtil.DisplayReset();
                ConsoleUtil.DisplayMessage("Thank you for using The Traveling Salesperson Application.");
                Console.ReadKey();
                System.Environment.Exit(1);
                break;

            case 'N':
            case 'n':
                DisplayContinuePrompt();
                break;

            default:
                ConsoleUtil.DisplayMessage("Invalid entry.  Please try again.");
                DisplayContinuePrompt();
                break;
            }
            // DisplayContinuePrompt();

            //ConsoleUtil.DisplayPromptMessage("Do you wish to exit the application?  Y/N:");
            //Console.ReadLine();

            ////Console.CursorVisible = false;

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

            //Console.ReadKey();

            //System.Environment.Exit(1);
        }
コード例 #22
0
        /// <summary>
        /// Display available product types
        /// </summary>
        public void DisplayAvailableProducts()
        {
            ConsoleUtil.DisplayReset();
            ConsoleUtil.DisplayMessage("Available Product Types: ");
            ConsoleUtil.DisplayMessage("");

            // list all types of products available
            // Enum.GetNames retrieves an array of the names in ProductType
            foreach (string productName in Enum.GetNames(typeof(Product.ProductType)))
            {
                // do not display "None" product type
                if (productName != "None")
                {
                    ConsoleUtil.DisplayMessage(productName);
                }
            }
        }
コード例 #23
0
        /// <summary>
        /// Display sell products
        /// </summary>
        /// <param name="salesperson"></param>
        /// <returns></returns>
        public Product.ProductType DisplaySellProducts(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Sell Inventory";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("Your current inventory:");
            ConsoleUtil.DisplayMessage("");
            CurrentInventory(salesperson);

            Product.ProductType productType = GetTypeOfProduct(salesperson, "sell", out bool inStock);

            if (!inStock)
            {
                ConsoleUtil.DisplayMessage("This product does not exist in your inventory.");

                DisplayContinuePrompt();
            }

            return(productType);
        }
コード例 #24
0
        /// <summary>
        /// Display buy new products and add to the salesperson
        /// </summary>
        /// <param name="salesperson"></param>
        /// <returns></returns>
        public Product.ProductType DisplayBuyNewProducts(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Buy New Products";
            ConsoleUtil.DisplayReset();

            DisplayAvailableProducts();

            Product.ProductType productType = GetTypeOfProduct(salesperson, "buy", out bool inStock);

            // if the product already exist in the inventory, the return will be set to none
            if (inStock)
            {
                productType = Product.ProductType.None;
                ConsoleUtil.DisplayMessage("This product already exist in your inventory.");

                DisplayContinuePrompt();
            }


            return(productType);
        }
コード例 #25
0
        /// <summary>
        /// display the welcome screen
        /// </summary>
        public void DisplayWelcomeScreen()
        {
            StringBuilder sb = new StringBuilder();

            ConsoleUtil.DisplayReset();
            Console.CursorVisible = false;

            ConsoleUtil.DisplayMessage("Written by Madeleine Woodbury");
            ConsoleUtil.DisplayMessage("Northwestern Michigan College");
            ConsoleUtil.DisplayMessage("");

            sb.Clear();
            sb.AppendFormat("Welcome to The Sales Tracker Application.");
            sb.AppendFormat("This application will help you, as a traveling salesperson, ");
            sb.AppendFormat("to keep track of your travels along with your sales and purchases. ");
            sb.AppendFormat("If you haven't already, use the menu to setup your Account information.");
            ConsoleUtil.DisplayMessage(sb.ToString());
            ConsoleUtil.DisplayMessage("");

            DisplayContinuePrompt();
        }
コード例 #26
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.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);
        }
コード例 #27
0
        /// <summary>
        ///  prompts the user to load account and travel log information
        ///  overloaded method to avoid passing a null value
        /// </summary>
        /// <param name="salesperson"></param>
        /// <param name="maxAttemptsExceeded"></param>
        /// <returns></returns>
        public bool DisplayLoadAccountInfo(Salesperson salesperson, out bool maxAttemptsExceeded)
        {
            string userResponse;

            maxAttemptsExceeded = false;

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

            ConsoleUtil.DisplayMessage("");
            userResponse = ConsoleValidator.GetYesNoFromUser(MAXIMUM_ATTEMPTS, "Load 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);
            }
        }
コード例 #28
0
        /// <summary>
        /// display the welcome screen
        /// </summary>
        public void DisplayWelcomeScreen()
        {
            StringBuilder sb = new StringBuilder();

            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("Written by John Velis");
            ConsoleUtil.DisplayMessage("Northwestern Michigan College");
            ConsoleUtil.DisplayMessage("");

            sb.Clear();
            sb.AppendFormat("You are a traveling salesperson buying and selling widgets ");
            sb.AppendFormat("around the country. You will be prompted regarding which city ");
            sb.AppendFormat("you wish to travel to and will then be asked whether you wish to buy ");
            sb.AppendFormat("or sell widgets.");
            ConsoleUtil.DisplayMessage(sb.ToString());
            ConsoleUtil.DisplayMessage("");

            sb.Clear();
            sb.AppendFormat("Your first task will be to set up your account details.");
            ConsoleUtil.DisplayMessage(sb.ToString());

            DisplayContinuePrompt();
        }
コード例 #29
0
        /// <summary>
        /// display a list of the cities traveled
        /// </summary>
        public void DisplayCitiesTraveled(Salesperson salesperson)
        {
            ConsoleUtil.HeaderText = "Travel Log";
            ConsoleUtil.DisplayReset();

            ConsoleUtil.DisplayMessage("You have traveled to the following cities:");
            ConsoleUtil.DisplayMessage("");

            foreach (City city in salesperson.CitiesVisited)
            {
                ConsoleUtil.DisplayMessage("City: " + city.CityName.ToUpper());
                foreach (Product product in city.SalesInfo)
                {
                    ConsoleUtil.DisplayMessage("\tProduct Type: " + product.Type.ToString());
                    ConsoleUtil.DisplayMessage("\tUnits Bought: " + product.ProductsBought.ToString());
                    ConsoleUtil.DisplayMessage("\tUnits Sold: " + product.ProductsSold.ToString());
                    ConsoleUtil.DisplayMessage("");
                }
                ConsoleUtil.DisplayMessage("");
            }


            DisplayContinuePrompt();
        }
コード例 #30
0
        /// <summary>
        /// get the menu choice from the user
        /// </summary>
        public MenuOption DisplayGetUserMenuChoice()
        {
            MenuOption userMenuChoice = MenuOption.None;
            bool       usingMenu      = true;

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

                //
                // display the menu
                //
                ConsoleUtil.DisplayMessage("Please type the number of your menu choice.");
                ConsoleUtil.DisplayMessage("");
                Console.Write(
                    "\t" + "1. Travel" + Environment.NewLine +
                    "\t" + "2. Display Cities" + Environment.NewLine +
                    "\t" + "3. Display Account Info" + Environment.NewLine +
                    "\t" + "E. Exit" + 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);
                switch (userResponse.KeyChar)
                {
                case '1':
                    userMenuChoice = MenuOption.Travel;
                    usingMenu      = false;
                    break;

                case '2':
                    userMenuChoice = MenuOption.DisplayCities;
                    usingMenu      = false;
                    break;

                case '3':
                    userMenuChoice = MenuOption.DisplayAccountInfo;
                    usingMenu      = false;
                    break;

                case 'E':
                case 'e':
                    userMenuChoice = MenuOption.Exit;
                    usingMenu      = false;
                    break;

                default:
                    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;
                }
            }
            Console.CursorVisible = true;

            return(userMenuChoice);
        }