/// <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); }
/// <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(); }
/// <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(); }
/// <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(); }
/// <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(); }
/// <summary> /// display the current account information /// </summary> public void DisplayAccountInfo(Salesperson salesperson) { ConsoleUtil.HeaderText = "Account Information"; ConsoleUtil.DisplayReset(); DisplayAccountDetail(salesperson); DisplayContinuePrompt(); }
/// <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(); }
/// <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(); }
/// <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(); }
/// <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(); }
/// <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(); }
/// <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> /// 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(); }
/// <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); }
/// <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(); }
/// <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> /// 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(); }
/// <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(); }
/// <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(); }
/// <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); }
/// <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); }
/// <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); } } }
/// <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); }
/// <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); }
/// <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(); }
/// <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> /// 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); } }
/// <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(); }
/// <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(); }
/// <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); }