/** * @fn private bool ModifyContractEmployee(ContractEmployee employee, string returnMessage) * * @brief allows user to modify this employee using the command line. * * @param ContractEmployee 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 ModifyContractEmployee(ContractEmployee 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 Business number"); Console.WriteLine("5. Change Contract Start Date(yyyy-mm-dd)"); Console.WriteLine("6. Change Contract Stop Date(yyyy-mm-dd)"); Console.WriteLine("7. Change Fixed Contract Amount"); 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 contractStartDateDone = false; while (!contractStartDateDone){ Console.Write("Enter a new contract start date:"); try { while (employee.SetContractStartDate(DateTime.ParseExact(Console.ReadLine(), "yyyy-MM-dd", CultureInfo.InvariantCulture)) == false) { Console.Write("Invalid date, Enter a new contract start date:"); } contractStartDateDone = true; } catch (FormatException ex){ Console.WriteLine("Invalid date, Format: yyyy-mm-dd"); contractStartDateDone = false; } } break; case "6": bool contractStopDateDone = false; while (!contractStopDateDone) { Console.Write("Enter a new contract stop date:"); try { while (employee.SetContractStopDate(DateTime.ParseExact(Console.ReadLine(), "yyyy-MM-dd", CultureInfo.InvariantCulture)) == false) { Console.Write("Invalid date, Enter a new contract stop date:"); } contractStopDateDone = true; } catch (FormatException ex) { Console.WriteLine("Invalid date, Format: yyyy-mm-dd"); contractStopDateDone = false; } } break; case "7": bool contractAmountDone = false; while (!contractAmountDone) { Console.Write("Enter a new fixed contract amount:"); try{ while (employee.SetFixedContractAmount(decimal.Parse(Console.ReadLine())) == false) { Console.Write("Invalid amount, Enter a new fixed contract amount:"); } contractAmountDone = true; } catch (FormatException ex) { Console.WriteLine("Fixed contract amount must be a number"); contractAmountDone = 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 SetDateofBirthTest() { SeasonalEmployee se = new SeasonalEmployee(); bool retSe = se.SetDateofBirth(new DateTime(1990, 11, 23)); ParttimeEmployee pe = new ParttimeEmployee(); bool retPe = pe.SetDateofBirth(new DateTime(1990, 11, 23)); FulltimeEmployee fe = new FulltimeEmployee(); bool retFe = fe.SetDateofBirth(new DateTime(1990, 11, 23)); ContractEmployee ce = new ContractEmployee(); bool retCe = ce.SetDateofBirth(new DateTime(1990, 11, 23)); Assert.AreEqual(retSe, true); Assert.AreEqual(retPe, true); Assert.AreEqual(retFe, true); Assert.AreEqual(retCe, true); }