/// <summary> /// this method is used to get the designation title in list /// </summary> /// <param name="Id">departmentdesignation Id</param> public async Task <string> GetDesignationByDepartmentDesignationId(int id) { var result = await _departmentDesignationRepository.GetDesignationByDepartmentDesignationId(id); return(result); }
/// <summary> /// this method is used to search for employee for a perticular skill and designation. /// skill name will be empty string instead of null /// </summary> /// <param name="designationAndSkillEmployeeSearch"></param> /// <returns></returns> public async Task <List <GetAllEmployeeDetailsDto> > DesignationAndSkillEmployeeSearch(DesignationAndSkillEmployeeSearch designationAndSkillEmployeeSearch) { string searchString = string.Empty; var employeeList = new List <GetAllEmployeeDetailsDto>(); var employeeWithSkills = await _employeeSkillRepository.SearchForEmployeeSkill(designationAndSkillEmployeeSearch.SkillName); if (designationAndSkillEmployeeSearch.searchString != null) { searchString = designationAndSkillEmployeeSearch.searchString.ToLower(); } if (designationAndSkillEmployeeSearch.DesignationId != null) { var departmentDesignation = await _departmentDesignationRepository.GetDepartmentDesignationForDesignation((int)designationAndSkillEmployeeSearch.DesignationId); var designationDetails = await _departmentDesignationRepository.GetDesignationByDepartmentDesignationId(departmentDesignation.Id); foreach (var employee in employeeWithSkills) { var employeeDetails = await _employeeRepository.GetEmployeeInformationAsync(employee); if (employeeDetails.DepartmentDesignationId == departmentDesignation.Id) { var emp = _mapper.Map <GetAllEmployeeDetailsDto>(employeeDetails); emp.DesignationTitle = designationDetails; if (designationAndSkillEmployeeSearch.searchString == null) { employeeList.Add(emp); continue; } var employeeName = string.Format("{0} {1} {2}", employeeDetails.FirstName, employeeDetails.MiddleName, employeeDetails.LastName); employeeName = String.Join(" ", employeeName.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)); emp.Name = employeeName; if (employeeName.ToLower().Contains(searchString)) { employeeList.Add(emp); } } } } else { foreach (var employee in employeeWithSkills) { var employeeDetails = await _employeeRepository.GetEmployeeInformationAsync(employee); var designationDetails = await _departmentDesignationRepository.GetDesignationByDepartmentDesignationId(employeeDetails.DepartmentDesignationId); var emp = _mapper.Map <GetAllEmployeeDetailsDto>(employeeDetails); emp.DesignationTitle = designationDetails; if (designationAndSkillEmployeeSearch.searchString == null) { employeeList.Add(emp); continue; } var employeeName = string.Format("{0} {1} {2}", employeeDetails.FirstName, employeeDetails.MiddleName, employeeDetails.LastName); employeeName = String.Join(" ", employeeName.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)); emp.Name = employeeName; if (employeeName.ToLower().Contains(searchString)) { employeeList.Add(emp); } } } return(employeeList); }