/// <summary>
 ///     Remove Trainee
 /// </summary>
 /// <param name="traineeToDelete">The Trainee to remove</param>
 public void RemoveTrainee(Trainee traineeToDelete)
 {
     if (AllTrainees.All(trainee => trainee.Id != traineeToDelete.Id))
     {
         throw new Exception("Trainee doesn't exist");
     }
     if (AllTests.Any(x => x.TraineeId == traineeToDelete.Id))
     {
         throw new Exception("Trainee Has " + AllTests.Count(x => x.TraineeId == traineeToDelete.Id) +
                             " Tests. Please Delete Them First.");
     }
     _dalImp.RemoveTrainee(traineeToDelete);
 }
        /// <summary>
        ///     Update Trainee
        /// </summary>
        /// <param name="updatedTrainee">The Trainee to update</param>
        public void UpdateTrainee(Trainee updatedTrainee)
        {
            if (AllTrainees.All(trainee => trainee.Id != updatedTrainee.Id))
            {
                throw new Exception("Trainee doesn't exist");
            }
            if (Tools.GetAge(updatedTrainee.BirthDate) < Configuration.MinTraineeAge)
            {
                throw new Exception("The trainee is too young");
            }
            if (updatedTrainee.BirthDate == DateTime.MinValue)
            {
                throw new Exception("Invalid birth date");
            }

            _dalImp.UpdateTrainee(updatedTrainee);
        }