//method to add a person static Person NewPerson(List <TeamMember> MemberList) { string firstName; string lastName; string email; int age; int salary; string address; bool memberFlag = false; while (true) { Console.Clear(); Console.WriteLine("Let's add a person to the list!\n"); Console.WriteLine("Is this person a Team Member?\n('y' for YES anything else for NO!)"); char personChoice = Console.ReadKey(true).KeyChar; if (personChoice == 'y' || personChoice == 'Y') { memberFlag = true; Console.WriteLine("\n--- we are now adding a team member ---\n"); } else { Console.WriteLine("\n--- we are now adding a person ---\n"); } firstName = GetString("Please enter a first name in Title Case:", @"^[A-Z][a-z]+$"); lastName = GetString("Please enter a last name in Title Case:", @"^[A-Z][a-z]+$"); email = GetString("please enter a valid email address:", @"^[A-Za-z0-9]+[@][A-Za-z0-9]+[.][a-z]{2,3}$"); age = GetNumber("Please enter a valid age...\n( 0 (super baby) to 122 (record for oldest human) )", 0, 122); if (age > 18) { if (memberFlag == false) { Person NewDude = new Person(firstName, lastName, age, email); return(NewDude); } else { salary = GetNumber("Please eneter the yearly salary (0 - 1000000):", 0, 1000000); address = GetString("Please enter an address in Title Case, space, and then a 2-3 letter abbreviation followed by '.'\n" + "EX: '123 Stonehoof Dr.' or '2134 Moon Ave.'\n", @"^[0-9]+(\s[A-Z][a-z]+)+\s[A-Z][a-z]{1,2}[.]$"); TeamMember NewDude = new TeamMember(firstName, lastName, age, email, salary, address); MemberList.Add(NewDude); return(NewDude); } } else { Console.WriteLine("Cannot add a person under 18!"); Console.WriteLine("Would you like to continue?\n('y' for YES, anything else for NO!)"); char answer = Console.ReadKey(true).KeyChar; if (answer == 'y' || answer == 'Y') { Console.Clear(); continue; } else { Console.Clear(); return(null); } } } }
static void Main(string[] args) { //make a list for our people List <Person> PersonList = new List <Person>(); //make a list just for team members List <TeamMember> MemberList = new List <TeamMember>(); //make some people Person Dan = new Person("Dan", "Frank", 19, "myeamil.fun.net"); Person Brian = new Person("Brian", "Bobo", 18, "*****@*****.**"); //add people PersonList.Add(Dan); PersonList.Add(Brian); //make some team members TeamMember Cindy = new TeamMember("Cindy", "Lauper", 32, "*****@*****.**", 100000000, "123 Moon Ave."); TeamMember Jack = new TeamMember("Jack", "Calahan", 45, "*****@*****.**", 9999999, "123 Mars St."); //add employees - works on my generic list because an employee is a person PersonList.Add(Cindy); PersonList.Add(Jack); MemberList.Add(Cindy); MemberList.Add(Jack); while (true) { Console.WriteLine("Welcome to the PERSON LIST!!\n\n"); Console.WriteLine("There are currently {0} people in the list\n", PersonList.Count()); foreach (Person dude in PersonList) { if (dude is TeamMember) { Console.Write("Team Member: "); } Console.WriteLine(dude.FirstName + " " + dude.LastName); } Console.WriteLine("\nTeam Member breakdown: "); foreach (TeamMember tm in MemberList) { Console.WriteLine("-------"); Console.WriteLine("NAME: " + tm.FirstName + " " + tm.LastName); Console.WriteLine("SALARY: " + tm.Salary); Console.WriteLine("ADDRESS: " + tm.Address); Console.WriteLine("EMAIL: " + tm.EmailAddress); Console.WriteLine("AGE: " + tm.Age); Console.WriteLine("-------"); } Console.WriteLine("\nWould you like to add a person?\n('y' for YES, anything else for NO)"); char answer = Console.ReadKey(true).KeyChar; if (answer == 'y' || answer == 'Y') { PersonList.Add(NewPerson(MemberList)); if (PersonList.Contains(null)) { PersonList.Remove(null); continue; } } else { Console.WriteLine("GOODBYE!"); Console.ReadKey(true); break; } Console.Clear(); } }