public Salesperson ReadSalespersonFromDataFile() { Salesperson salesperson = new Salesperson(); //Initialize a Filestream Object StreamReader sr = new StreamReader(_dataFilePath); //Initialize XML serilizer object XmlSerializer deserializer = new XmlSerializer(typeof(Salesperson)); using (sr) { object xmlObj = deserializer.Deserialize(sr); Console.WriteLine(xmlObj); salesperson = (Salesperson)xmlObj; } return(salesperson); }
/// <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("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: "); salesperson.StartingCity = Console.ReadLine(); ConsoleUtil.DisplayMessage(""); ConsoleUtil.DisplayReset(); ConsoleUtil.DisplayMessage("Your account is setup."); DisplayContinuePrompt(); return(salesperson); }
private void ManageMainMenuScreen() { MenuOption userMenuChoice; _consoleView.DisplayWelcomeScreen(); userMenuChoice = _consoleView.MainMenu(); switch (userMenuChoice) { case MenuOption.None: break; case MenuOption.SetupAccount: _salesperson = _consoleView.DisplaySetupAccount(); ManageApplicationLoop(); break; case MenuOption.StartFromSave: DisplayLoadAccountInfo(); ManageApplicationLoop(); break; case MenuOption.Exit: break; default: ConsoleUtil.DisplayMessage("I have no words that explain how amazed I am you got this to display"); break; } }
/// <summary> /// display load account information /// </summary> private void DisplayLoadAccountInfo() { bool maxAttemptsExceeded = false; bool loadAccountInfo = false; // // note: rather than pass null value, method is overloaded // if (_salesperson.AccountID != "") { loadAccountInfo = _consoleView.DisplayLoadAccountInfo(_salesperson, out maxAttemptsExceeded); } else { loadAccountInfo = _consoleView.DisplayLoadAccountInfo(out maxAttemptsExceeded); } if (loadAccountInfo && !maxAttemptsExceeded) { //CsvServices csvServices = new CsvServices(DataSettings.dataFilePathCsv); XmlServices xmlServices = new XmlServices(DataSettings.dataFilePathXml); //_salesperson = csvServices.ReadSalespersonFromDataFile(); _salesperson = xmlServices.ReadSalespersonFromDataFile(); _consoleView.DisplayConfirmLoadAccountInfo(_salesperson); } }
public bool DisplaySaveAccountInfo(Salesperson salesperson, out bool maxAttemptsExceeded) { string userResponse; maxAttemptsExceeded = false; ConsoleUtil.HeaderText = "Save Account"; ConsoleUtil.DisplayReset(); ConsoleUtil.DisplayMessage("The current account information."); DisplayAccountInfo(salesperson, false); ConsoleUtil.DisplayMessage(""); userResponse = ConsoleValidator.GetYesNoFromUser(MAXIMUM_ATTEMPTS, "Save the account information?", out maxAttemptsExceeded); if (maxAttemptsExceeded) { ConsoleUtil.DisplayMessage("It appears you are having difficulty. You will return to the main menu."); return(false); } else { // // Note use of ternary operator. // return(userResponse.ToLower() == "yes" ? true : false); } }
/// <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(""); salesperson.FirstName = ValidateString("Enter your First Name: ", "Unknown", out bool attemptsExceeded, 3); ConsoleUtil.DisplayMessage(""); salesperson.LastName = ValidateString("Enter your Last Name: ", "Unknown", out attemptsExceeded, 3); ConsoleUtil.DisplayMessage(""); salesperson.Age = ValidateInt("Enter your age: ", out attemptsExceeded, 3); ConsoleUtil.DisplayMessage(""); salesperson.AccountID = ValidateString("Enter your Account ID: ", "Unknown", out attemptsExceeded, 3); ConsoleUtil.DisplayMessage(""); DisplayAddInventory(salesperson); ConsoleUtil.DisplayMessage(""); ConsoleUtil.DisplayReset(); ConsoleUtil.DisplayMessage("Your account is setup"); DisplayContinuePrompt(); return(salesperson); }
public bool DisplaySaveAccountInfo(Salesperson _salesperson, out bool maxAttemptsExceeded) { maxAttemptsExceeded = false; string userResponse; ConsoleUtil.HeaderText = "Save Account"; ConsoleUtil.DisplayReset(); ConsoleUtil.DisplayMessage("The current account info."); DisplayAccountInfo(_salesperson); ConsoleUtil.DisplayMessage(""); userResponse = ConsoleValidator.GetYesNoFromUser(maxAttempts, "Save account info?", out maxAttemptsExceeded); if (maxAttemptsExceeded) { ConsoleUtil.DisplayMessage("It appears you are having difficult, we will return you" + "to the main menu"); return(false); } else { return(userResponse == "yes" ? true : false); } }
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); }
/// <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); ConsoleUtil.DisplayMessage("Product Type: " + salesperson.Inventory.Type); ConsoleUtil.DisplayMessage("Current Inventory: " + salesperson.Inventory.NumberOfUnits); ConsoleUtil.DisplayMessage("Age: " + salesperson.Age); ConsoleUtil.DisplayMessage("Cities traveled:"); foreach (string city in salesperson.CitiesVisited) { ConsoleUtil.DisplayMessage(city); } if (salesperson.IsHockeyFan) { ConsoleUtil.DisplayMessage("Is a hockey fan, NICE."); } else { ConsoleUtil.DisplayMessage("Is not a hockey fan, LAME."); } DisplayContinuePrompt(); }
public void WriteJsonFile(Salesperson salesperson) { StreamWriter sWriter; try { sWriter = new StreamWriter(DataSettings.dataFilePathJson); } catch (UnauthorizedAccessException ex) { Console.WriteLine("You need more permissions to run the application. Try running it as an admin."); Console.WriteLine(ex); throw; } catch (DirectoryNotFoundException) { File.Create(DataSettings.dataFilePathJson); sWriter = new StreamWriter(DataSettings.dataFilePathJson); } catch (PathTooLongException) { Console.WriteLine("The path is too long."); throw; } using (sWriter) { sWriter.Write(JsonConvert.SerializeObject(salesperson, Formatting.Indented)); } }
private void DisplaySetupAccount() { // // setup initial salesperson account // _salesperson = _consoleView.DisplaySetupAccount(); _salesperson.Logs.Push(DateTime.Now + " ... Account Created!"); }
/// <summary> /// method to manage the application setup and control loop /// </summary> private void ManageApplicationLoop() { MenuOption userMenuChoice; _consoleView.DisplayWelcomeScreen(); // // setup initial salespersons account // _salesperson = _consoleView.DisplaySetupAccount(); // // application loop // while (_usingApplication) { // // get a menu choice from the user // userMenuChoice = _consoleView.DisplayGetUserMenuChoice(); // // choose an action based on the user menu choice // switch (userMenuChoice) { case MenuOption.None: break; case MenuOption.Travel: Travel(); break; case MenuOption.DisplayCities: DisplayCities(); break; case MenuOption.DisplayAccountInfo: DisplayAccountInfo(); break; case MenuOption.Exit: _usingApplication = false; break; default: break; } } _consoleView.DisplayClosingScreen(); // // close the application // Environment.Exit(1); }
/// <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(); }
public void DisplayConfirmLoadAccountInfo(Salesperson salesperson) { ConsoleUtil.HeaderText = "Load Account"; ConsoleUtil.DisplayReset(); ConsoleUtil.DisplayMessage("Account information loaded."); DisplayAccountInfo(salesperson, false); }
public Controller() { InitializeController(); _consoleView = new ConsoleView(); _salesperson = new Salesperson(); ManageApplicationLoop(); }
public void WriteSalespersonToDataFile(Salesperson salesperson) { string salespersonData; char delineator = ','; StringBuilder sb = new StringBuilder(); // // add salesperson and product info to string // sb.Clear(); sb.Append(salesperson.FirstName + delineator); sb.Append(salesperson.LastName + delineator); sb.Append(salesperson.AccountID + delineator); sb.Append(salesperson.CurrentStock.Type.ToString() + delineator); sb.Append(salesperson.CurrentStock.NumberOfUnits.ToString() + delineator); sb.Append(salesperson.CurrentStock.OnBackorder.ToString()); sb.Append(Environment.NewLine); // // add cities traveled to the string // foreach (string city in salesperson.CitiesVisited) { sb.Append(city + delineator); } // // remove the last delineator // if (sb.Length != 0) { sb.Length--; } // // convert StringBuilder object to a string // salespersonData = sb.ToString(); // initialize a FileStream object for writing FileStream wfileStream = File.OpenWrite(DataSettings.dataFilePathCsv); // wrap the FieldStream object in a using statement to ensure of the dispose using (wfileStream) { // wrap the FileStream object in a StreamWriter object to simplify writing strings StreamWriter sWriter = new StreamWriter(wfileStream); using (sWriter) { sWriter.Write(salespersonData); } } }
public void ManageApplicationLoop() { MenuOption userMenuChoice; _consoleView.DisplayWelcomeScreen(); _salesperson = _consoleView.DisplaySetupAccount(); while (_usingApplication) { userMenuChoice = _consoleView.DisplayGetUserMenuChoice(); switch (userMenuChoice) { case MenuOption.None: break; case MenuOption.Travel: Travel(); break; case MenuOption.Buy: Buy(); break; case MenuOption.Sell: Sell(); break; case MenuOption.DisplayInventory: DisplayInventory(); break; case MenuOption.DisplayCities: DisplayCities(); break; case MenuOption.DisplayAccountInfo: DisplayAccountInfo(); break; case MenuOption.SaveAccountInfo: SaveAccountInfo(); break; case MenuOption.LoadAccountInfo: LoadAccountInfo(); break; case MenuOption.Exit: _usingApplication = false; break; default: break; } } _consoleView.DisplayClosingScreen(); Environment.Exit(1); }
/// <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> /// 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(); }
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(); }
public void WriteSalespersonToDataFile(Salesperson salesperson) { XmlSerializer serializer = new XmlSerializer(typeof(Salesperson), new XmlRootAttribute("Salesperson")); StreamWriter sWriter = new StreamWriter(_dataFilePath); using (sWriter) { serializer.Serialize(sWriter, salesperson); } }
public void DisplayConfirmLoadAccountInfo(Salesperson salesperson) { ConsoleUtil.HeaderText = "Load Account"; ConsoleUtil.DisplayReset(); ConsoleUtil.DisplayMessage("Account information loaded"); DisplayAccountDetail(salesperson); DisplayContinuePrompt(); }
/// <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(); }
public void DisplayLogs(Salesperson salesperson) { ConsoleUtil.HeaderText = "Logs"; ConsoleUtil.DisplayReset(); foreach (string log in salesperson.Logs) { ConsoleUtil.DisplayMessage(log); } DisplayContinuePrompt(); }
private void ReadAccountInfo() { bool active; active = _consoleView.DisplayLoadAccountInfo(out bool attempted, _jsonService.ReadJsonFile()); if (active) { _salesperson = _jsonService.ReadJsonFile(); _consoleView.DisplayConfirmLoadAccountInfo(_salesperson); _salesperson.Logs.Push(DateTime.Now + " ... Account Information Loaded!"); } }
public Salesperson ReadJsonFile() { Salesperson salesPerson = new Salesperson(); StreamReader sReader = new StreamReader(DataSettings.dataFilePathJson); using (sReader) { salesPerson = JsonConvert.DeserializeObject <Salesperson>(sReader.ReadToEnd()); } return(salesPerson); }
/// <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(); }
public static void SaveAccountInfo(Salesperson salesperson) { // instantiate an XmlSerializer object with the object class XmlSerializer serializer = new XmlSerializer(typeof(Salesperson)); // instantiate a StreamWriter object with the data file loation StreamWriter sWriter = new StreamWriter("AccountInfo.xml"); // write the serialized data to the xml file using (sWriter) { serializer.Serialize(sWriter, salesperson); } }
/// <summary> /// Display all cities traveled to in chronological order /// </summary> /// <param name="salesperson"></param> public void DisplayCitiesTraveled(Salesperson salesperson) { ConsoleUtil.HeaderText = "CitiesVisited"; ConsoleUtil.DisplayReset(); ConsoleUtil.DisplayMessage("Cities you have visited:"); int inc = 0; foreach (string city in salesperson.CitiesVisited) { inc++; ConsoleUtil.DisplayMessage(inc + ". " + city); } 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(); }