/** * @fn private bool ModifyParttimeEmployee(ModifyParttimeEmployee employee, string returnMessage) * * @brief allows user to modify this employee using the command line. * * @param ModifyParttimeEmployee The employee to modify. * @param returnMessage message displayed to the user as the option to return from this method. * * @return whether the user canceled. */ private bool ModifyParttimeEmployee(ParttimeEmployee employee, string returnMessage) { bool done = false; bool isCanceled = false; //loop until user goes back do { Console.Clear(); Console.WriteLine(employee.Details()); Console.WriteLine("1. Change First Name(A-Z, a-z, ', -)"); Console.WriteLine("2. Change Last Name(A-Z, a-z, ', -)"); Console.WriteLine("3. Change Date of birth(yyyy-mm-dd)"); Console.WriteLine("4. Change Social insurance number"); Console.WriteLine("5. Change Date of hire(yyyy-mm-dd)"); Console.WriteLine("6. Change Date of termination(yyyy-mm-dd)"); Console.WriteLine("7. Change Hourly Rate"); Console.WriteLine("8. Cancel"); Console.WriteLine("9. " + returnMessage); //get user input until valid bool valid; do { valid = true; string input = Console.ReadLine(); switch (input) { case "1": Console.Write("Enter a new first name:"); while (employee.SetFirstName(Console.ReadLine()) == false) { Console.Write("Invalid name, Enter a new first name:"); } break; case "2": Console.Write("Enter a new last name:"); while (employee.SetLastName(Console.ReadLine()) == false) { Console.Write("Invalid name, Enter a new last name:"); } break; case "3": bool dateOfBirthDone = false; while (!dateOfBirthDone) { Console.Write("Enter a new date of birth:"); try { while (employee.SetDateofBirth(DateTime.ParseExact(Console.ReadLine(), "yyyy-MM-dd", CultureInfo.InvariantCulture)) == false) { Console.Write("Invalid date, Enter a new date of birth:"); } dateOfBirthDone = true; } catch (FormatException ex) { Console.WriteLine("Invalid date, Format: yyyy-mm-dd"); dateOfBirthDone = false; } } break; case "4": Console.Write("Enter a new social insurance number:"); while (employee.SetSocialInsuranceNumber(Console.ReadLine()) == false){ Console.Write("Invalid number, Enter a new social insurance number:"); } break; case "5": bool dateOfHireDone = false; while (!dateOfHireDone) { Console.Write("Enter a new date of hire:"); try { while (employee.SetDateOfHire(DateTime.ParseExact(Console.ReadLine(), "yyyy-MM-dd", CultureInfo.InvariantCulture)) == false) { Console.Write("Invalid date, Enter a new date of hire:"); } dateOfHireDone = true; } catch (FormatException ex) { Console.WriteLine("Invalid date, Format: yyyy-mm-dd"); dateOfHireDone = false; } } break; case "6": bool dateOfTerminationDone = false; while (!dateOfTerminationDone) { Console.Write("Enter a new date of termination:"); try { while (employee.SetDateOfTermination(DateTime.ParseExact(Console.ReadLine(), "yyyy-MM-dd", CultureInfo.InvariantCulture)) == false) { Console.Write("Invalid date, Enter a new date of termination:"); } dateOfTerminationDone = true; } catch (FormatException ex) { Console.WriteLine("Invalid date, Format: yyyy-mm-dd"); dateOfTerminationDone = false; } } break; case "7": bool hourlyRateDone = false; while (!hourlyRateDone) { Console.Write("Enter a new hourly rate:"); try { while (employee.SetHourlyRate(decimal.Parse(Console.ReadLine())) == false) { Console.Write("Invalid rate, Enter a new hourly rate:"); } hourlyRateDone = true; } catch (FormatException ex){ Console.WriteLine("Hourly rate must be a number"); hourlyRateDone = false; } } break; case "8": done = true;//end isCanceled = true; break; case "9": done = true;//end isCanceled = false; break; default: Console.WriteLine("Invalid input, please enter number corrispoding to a menu option:"); valid = false; break; } } while (!valid); } while (!done); return isCanceled; }
public void GetCopyAtNormalTest() { EmployeeContainer ec = new EmployeeContainer("test", "GetCopyAtNormalTestLog"); ParttimeEmployee pe = new ParttimeEmployee( new DateTime(1999, 12, 31), new DateTime(2000, 1, 1), 10, "Testy", "Peoper", new DateTime(1950, 1, 1), "111222333" ); ec.Add(pe); Employee peCopy = ec.GetCopyAt(0); Assert.AreEqual(peCopy.Details(), pe.Details()); }
public void DetailsTestValid() { DateTime DOB = new DateTime(1954, 08, 20); DateTime DOH = new DateTime(1994, 09, 03); DateTime DOT = new DateTime(2014, 12, 23); ParttimeEmployee employee = new ParttimeEmployee("Brandon", "Davies", 123456789, DOB, DOH, DOT, 18); String details = employee.Details(); Assert.IsTrue(details == "Employee Type: ParttimeEmployee\nName: Brandon Davies\nSocial Insurance Number: 123 456 789\nDate of Birth: 1954-08-20\nDate of Hire: 1994-09-03\nDate of Termionation2014-12-23\nHourly Rate: 18"); }