/// <summary> /// Prompts the user for an alphabetic value (i.e. a value containing only letters and/or spaces). /// </summary> /// <param name="prompt">The input prompt.</param> /// <returns>Returns the alphabetic value.</returns> public static string ReadAlphabeticValue(string prompt) { string result = null; bool found = false; while (!found) { result = ConsoleUtil.ReadStringValue(prompt); if (Regex.IsMatch(result, @"^[a-zA-Z ]+$")) { found = true; } else { Console.WriteLine(prompt + " must contain only letters or spaces."); } } return(result); }
/// <summary> /// Reads an integer value from the console. /// </summary> /// <param name="prompt">The text to display before the prompt.</param> /// <returns>A value indicating whether or not the out value is being returned successfully.</returns> public static int ReadIntValue(string prompt) { int result = 0; string stringValue = result.ToString(); bool found = false; while (!found) { stringValue = ConsoleUtil.ReadStringValue(prompt); if (int.TryParse(stringValue, out result)) { found = true; } else { Console.WriteLine(prompt + " must be a whole number."); } } return(result); }
/// <summary> /// Reads an integer value from the console. /// </summary> /// <param name="prompt">The text to display before the prompt.</param> /// <returns>A value indicating whether or not the out value is being returned successfully.</returns> public static double ReadDoubleValue(string prompt) { double result = 0.0; string stringValue = result.ToString(); bool found = false; while (!found) { stringValue = ConsoleUtil.ReadStringValue(prompt); if (double.TryParse(stringValue, out result)) { found = true; } else { Console.WriteLine(prompt + " must be either a whole number or a decimal number."); } } return(result); }
/// <summary> /// Adds a guest to the zoo. /// </summary> /// <param name="zoo">The zoo in which to add a guest.</param> private static void AddGuest(Zoo zoo) { // Create a new guest. Guest guest = new Guest("Joe", 36, 0, WalletColor.Brown, Gender.Male, new Account()); // Prompt for guest name. bool nameSuccess = false; while (!nameSuccess) { try { string guestName = ConsoleUtil.ReadAlphabeticValue("Name"); guest.Name = ConsoleUtil.InitialUpper(guestName); nameSuccess = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } } // prompt for guest gender. bool genderSuccess = false; while (!genderSuccess) { try { guest.Gender = ConsoleUtil.ReadGender(); genderSuccess = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } } // Prompt for guest age. bool ageSuccess = false; while (!ageSuccess) { try { guest.Age = ConsoleUtil.ReadIntValue("Age"); ageSuccess = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } } // Prompt for guest wallet money balance. bool walletSuccess = false; // CREATED DECIMAL METHOD IN UTIL. while (!walletSuccess) { try { guest.Wallet.AddMoney(ConsoleUtil.ReadDecimalValue("Wallet Money Balance")); walletSuccess = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } } // Prompt for guest wallet color. bool walletColorSuccess = false; while (!walletColorSuccess) { try { WalletColor walletColor = ConsoleUtil.ReadWalletColor(); walletColorSuccess = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } } // Prompt for guest checking account balance. bool accountSuccess = false; while (!accountSuccess) { try { guest.CheckingAccount.AddMoney(ConsoleUtil.ReadDecimalValue("Account Balance")); accountSuccess = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } } // Add the newly created guest to the list after selling them a ticket and a waterbottle. This will subtract $18.00 from the entered money balance. zoo.AddGuest(guest, zoo.SellTicket(guest)); // Show the new animal. ShowGuest(zoo, guest.Name); }
/// <summary> /// Adds an animal to the zoo. /// </summary> /// <param name="zoo">The zoo in which to add an animal.</param> private static void AddAnimal(Zoo zoo) { // Reads the animal type from the console. AnimalType readAnimal = ConsoleUtil.ReadAnimalType(); // Creates the entered animal type. Animal animal = AnimalFactory.CreateAnimal(readAnimal, "Max", 2, 78, Gender.Female) as Animal; // Prompt for animal name. bool nameSuccess = false; while (!nameSuccess) { try { string animalName = ConsoleUtil.ReadAlphabeticValue("Name"); animal.Name = ConsoleUtil.InitialUpper(animalName); nameSuccess = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } } // prompt for animal gender. bool genderSuccess = false; while (!genderSuccess) { try { animal.Gender = ConsoleUtil.ReadGender(); genderSuccess = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } } // Prompt for animal age. bool ageSuccess = false; while (!ageSuccess) { try { animal.Age = ConsoleUtil.ReadIntValue("Age"); ageSuccess = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } } // Prompt for animal weight. bool weightSuccess = false; while (!weightSuccess) { try { animal.Weight = ConsoleUtil.ReadDoubleValue("Weight"); weightSuccess = true; } catch (Exception ex) { Console.WriteLine(ex.Message); } } // Add the newly created animal to the list. zoo.AddAnimal(animal); // Show the new animal. ShowAnimal(zoo, animal.Name); }
/// <summary> /// Adds a new guest to the zoo. /// </summary> /// <param name="zoo">The current zoo.</param> private static void AddGuest(Zoo zoo) { bool success = false; Guest guest = new Guest(string.Empty, 0, WalletColor.Black, 0m, Gender.Female, new Account()); if (guest == null) { throw new NullReferenceException("Guest could not be found."); } while (!success) { try { string name = ConsoleUtil.ReadAlphabeticValue("Name"); guest.Name = ConsoleUtil.InitialUpper(name); success = true; } catch (ArgumentException e) { Console.WriteLine(e.Message); } } success = false; while (!success) { try { guest.Gender = ConsoleUtil.ReadGender(); success = true; } catch (Exception e) { Console.WriteLine(e.Message); } } success = false; while (!success) { try { int age = ConsoleUtil.ReadIntValue("Age"); guest.Age = age; success = true; } catch (ArgumentOutOfRangeException e) { Console.WriteLine(e.Message); } } success = false; while (!success) { try { double moneyBalance = ConsoleUtil.ReadDoubleValue("Money balance"); guest.Wallet.AddMoney((decimal)moneyBalance); success = true; } catch (Exception e) { Console.WriteLine(e.Message); } } success = false; while (!success) { try { guest.Wallet.Color = ConsoleUtil.ReadWalletColor(); success = true; } catch (Exception e) { Console.WriteLine(e.Message); } } success = false; while (!success) { try { double moneyBalance = ConsoleUtil.ReadDoubleValue("Checking account money balance"); guest.CheckingAccount.AddMoney((decimal)moneyBalance); success = true; } catch (Exception e) { Console.WriteLine(e.Message); } } Ticket ticket = zoo.SellTicket(guest); zoo.AddGuest(guest, ticket); ConsoleHelper.ShowGuest(zoo, guest.Name); }
/// <summary> /// Adds a new animal to the zoo. /// </summary> /// <param name="zoo">The current zoo.</param> private static void AddAnimal(Zoo zoo) { bool success = false; AnimalType animalType = ConsoleUtil.ReadAnimalType(); Animal animal = AnimalFactory.CreateAnimal(animalType, string.Empty, 0, 1, Gender.Female); if (animal == null) { throw new NullReferenceException("Animal could not be found."); } while (!success) { try { string name = ConsoleUtil.ReadAlphabeticValue("Name"); animal.Name = ConsoleUtil.InitialUpper(name); success = true; } catch (ArgumentException e) { Console.WriteLine(e.Message); } } success = false; while (!success) { try { animal.Gender = ConsoleUtil.ReadGender(); success = true; } catch (Exception e) { Console.WriteLine(e.Message); } } success = false; while (!success) { try { int age = ConsoleUtil.ReadIntValue("Age"); animal.Age = age; success = true; } catch (ArgumentOutOfRangeException e) { Console.WriteLine(e.Message); } } success = false; while (!success) { try { double weight = ConsoleUtil.ReadDoubleValue("Weight"); animal.Weight = weight; success = true; } catch (ArgumentOutOfRangeException e) { Console.WriteLine(e.Message); } } zoo.AddAnimal(animal); ConsoleHelper.ShowAnimal(zoo, animal.Name); }
/// <summary> /// Writes help detail for a console command which takes no arguments. /// </summary> /// <param name="command">The command to write help detail for.</param> /// <param name="overview">An overview of the command.</param> public static void WriteHelpDetail(string command, string overview) { ConsoleUtil.WriteHelpDetail(command, overview, null); }
/// <summary> /// Writes help detail for a console command which takes a single argument. /// </summary> /// <param name="command">The command to write help detail for.</param> /// <param name="overview">An overview of the command.</param> /// <param name="argument">The command's argument.</param> /// <param name="argumentUsage">A dictionary of each of the arguments and their usage descriptions.</param> public static void WriteHelpDetail(string command, string overview, string argument, string argumentUsage) { ConsoleUtil.WriteHelpDetail(command, overview, new Dictionary <string, string> { { argument, argumentUsage } }); }