public ListSuitableTraineeDTO GetAllTrainee() { ListSuitableTraineeDTO listSuitableTraineeDto = new ListSuitableTraineeDTO(); List <ShortTraineeDetailDTO> shortTraineeDetailDtos = new List <ShortTraineeDetailDTO>(); var traineeList = _traineeRepository.GetAllList(); foreach (var trainee in traineeList) { ShortTraineeDetailDTO shortTraineeDetailDto = new ShortTraineeDetailDTO(trainee.Id, trainee.Person.Name, trainee.DefaultDepartment); shortTraineeDetailDtos.Add(shortTraineeDetailDto); } listSuitableTraineeDto.ListSuitableTrainees = shortTraineeDetailDtos; return(listSuitableTraineeDto); }
public ListSuitableTraineeDTO GetSuitableTrainees(int programID) { try { ListSuitableTraineeDTO suitableTrainees = new ListSuitableTraineeDTO(); List <ShortTraineeDetailDTO> listSuitableTrainees = new List <ShortTraineeDetailDTO>(); #region Get Competencies trained by the program, we will use it to compare with trainee's Competencies List <int> competenciesTrainedID = new List <int>(); //Get program by ProgramId var program = _programRepository.Get(programID); int[] modulesIncludedID = program.ArrayOfIncludedModules; //Get list module by array ModuleId var modulesIncluded = _moduleRepository.GetModulesByArrayID(modulesIncludedID); foreach (Module module in modulesIncluded) { //Get list Competencies trained by module List <int> competenciesTrainedIDByModule = module.ArrayOfTrainingCompetencies.ToList(); //Add there Competencies to list Competencies trained by program foreach (int competenceID in competenciesTrainedIDByModule) { competenciesTrainedID.Add(competenceID); } } //Remove the duplicate Competencies competenciesTrainedID = competenciesTrainedID.Distinct().ToList(); #endregion #region Get all the trainee in database, we will findout the suitable trainees var trainees = _traineeRepository.GetAllIncluding(trainee => trainee.Person); foreach (Trainee trainee in trainees) { int[] competenciesGained = trainee.ArrayOfCompetence; if (_compareAppService.IsMissingCompetencies(competenciesGained, competenciesTrainedID.ToArray())) { //This one is a suitable trainee ShortTraineeDetailDTO suitableTrainee = new ShortTraineeDetailDTO(); suitableTrainee.TraineeId = trainee.Id; suitableTrainee.Name = trainee.Person.Name; suitableTrainee.DefaultDepartment = trainee.DefaultDepartment; listSuitableTrainees.Add(suitableTrainee); } } suitableTrainees.ListSuitableTrainees = listSuitableTrainees; #endregion return(suitableTrainees); } catch (Exception e) { return(null); } }
public void GetAllTraineeShouldReturnAllTrainee() { //Arrange Person person1 = new Person() { Id = 1, Name = "trainer1", Company = "Rosen" }; Trainee trainee1 = new Trainee() { Id = 1, PersonId = 1, Person = person1, DefaultDepartment = "Software Development", JobFunctions = "1", Competencies = "1", TargetedTrainings = "1", AttendedTrainings = "1" }; Person person2 = new Person() { Id = 2, Name = "trainer2", Company = "Rosen" }; Trainee trainee2 = new Trainee() { Id = 2, PersonId = 2, Person = person2, DefaultDepartment = "Software Development", JobFunctions = "1", Competencies = "1", TargetedTrainings = "1", AttendedTrainings = "1" }; List <Trainee> expectList = new List <Trainee>() { trainee1, trainee2 }; //mock mockTraineeRepository.Setup(repo => repo.GetAllList()).Returns(expectList); //act ListSuitableTraineeDTO output = sutTraineeService.GetAllTrainee(); bool expected = true; for (int i = 0; i < 2; i++) { if (expectList[i].Id != output.ListSuitableTrainees[i].TraineeId) { expected = false; break; } } //assert Assert.AreEqual(true, expected); }