public void ReadUpdatedPropertiesFor(ref BaseUser user) { var maxChoice = 5; var choice = -1; do { Console.WriteLine("Current data:"); Console.Write(user.ToString()); Console.WriteLine("-------------"); Console.WriteLine("Change which field?"); Console.WriteLine("1. Name"); Console.WriteLine("2. Street"); Console.WriteLine("3. City"); Console.WriteLine("4. State"); Console.WriteLine("5. Zip"); if (user.GetType() == typeof(Member)) { Console.WriteLine("6. Suspension Status"); maxChoice = 6; } Console.WriteLine("0. (Done)"); choice = ReadInt("Your choice"); switch (choice) { case 1: var name = ReadValidStringFor(user, "Name"); user.Name = name; break; case 2: var street = ReadValidStringFor(user, "Street"); user.Street = street; break; case 3: var city = ReadValidStringFor(user, "City"); user.City = city; break; case 4: var state = ReadValidStringFor(user, "State"); user.State = state; break; case 5: var zip = ReadValidIntFor(user, "Zip"); user.Zip = zip; break; case 6: ((Member)user).Suspended = !((Member)user).Suspended; break; } } while (choice > 0 && choice < maxChoice + 1); }
/** * Prompts for and fills in common data for any user classes. * * Params: * type: One of the user models from the UserTypes enum above. * Determines which type of model will be returned. * * Returns: an initialized instance of the type you passed in */ private static BaseUser ReadUser(BaseUser user) { Console.WriteLine(); user.Name = ReadValidStringFor(user, "Name"); user.Street = ReadValidStringFor(user, "Street"); user.City = ReadValidStringFor(user, "City"); user.State = ReadValidStringFor(user, "State"); user.Zip = ReadValidIntFor(user, "Zip"); return(user); }
public void EditUser() { var userType = View.UserTypeMenu(); if (userType == null) { return; } BaseUser user = null; if (userType == typeof(Member)) { user = View.ReadMemberById("Enter the ID of the member to edit"); } else if (userType == typeof(Provider)) { user = View.ReadProviderById("Enter the ID of the provider to edit"); } else if (userType == typeof(Manager)) { user = View.ReadManagerById("Enter the ID of the manager to edit"); } if (user == null) { return; } View.ReadUpdatedPropertiesFor(ref user); View.PrintUser(user); var save = View.Confirm("Save this information?"); if (save) { if (userType == typeof(Member)) { Member.Collection.Update((Member)user); } else if (userType == typeof(Provider)) { Provider.Collection.Update((Provider)user); } else if (userType == typeof(Manager)) { Manager.Collection.Update((Manager)user); } View.PrintSuccess("Record saved."); } else { View.PrintError("Abandoning Changes."); } }
public void PrintUser(BaseUser user) { Console.WriteLine($"Name: {user.Name}"); Console.WriteLine("Address:"); Console.WriteLine($" Street: {user.Street}"); Console.WriteLine($" City: {user.City}"); Console.WriteLine($" State: {user.State}"); Console.WriteLine($" Zip: {user.Zip}"); if (user.GetType() == typeof(Member)) { var suspended = ((Member)user).Suspended ? "yes" : "no"; Console.WriteLine($"Suspended: {suspended}"); } }