public List <Employee> LoadEmployees(EmployeePageRequest pageRequest) { var employees = Context.Employees.Include(e => e.Title).ToList(); UpdateAdditionalDetail(employees); return(FilterEmployeesByCriteria(employees, pageRequest)); }
private List <Employee> FilterEmployeesByCriteria(List <Employee> employees, EmployeePageRequest pageRequest) { if (pageRequest.Criteria == null || !pageRequest.Criteria.Any()) { return(employees); } pageRequest.RemoveEmptyCriteria(); foreach (var criteria in pageRequest.Criteria) { var searchValue = criteria.Value; switch (criteria.Key) { case EmployeeFilterKey.All: employees = employees.Where(x => (x.DisplayId.ContainIgnoreCase(searchValue) || x.Name.ContainIgnoreCase(searchValue) || x.Title.Name.ContainIgnoreCase(searchValue) || x.Email.ContainIgnoreCase(searchValue) || x.Address.ContainIgnoreCase(searchValue))).ToList(); break; case EmployeeFilterKey.Id: employees = employees.Where(x => x.DisplayId.ContainIgnoreCase(searchValue)).ToList(); break; case EmployeeFilterKey.Name: employees = employees.Where(x => x.Name.ContainIgnoreCase(searchValue)).ToList(); break; case EmployeeFilterKey.Title: employees = employees.Where(x => x.Title.Name.ContainIgnoreCase(searchValue)).ToList(); break; case EmployeeFilterKey.Email: employees = employees.Where(x => x.Email.ContainIgnoreCase(searchValue)).ToList(); break; default: employees = employees.Where(x => x.Address.ContainIgnoreCase(searchValue)).ToList(); break; } } return(employees); }
public List <Employee> LoadEmployees(EmployeePageRequest pageRequest) { var result = employeeRepository.LoadEmployees(pageRequest); result.ForEach(x => { x.Title = new Title { Id = x.Title.Id, Name = x.Title.Name }; x.EmployeeSkill = x.EmployeeSkill?.Select(s => new EmployeeSkill { Id = s.Id, EmployeeId = x.Id, SkillId = s.SkillId, Skill = new Skill { Id = s.SkillId, Name = s.Skill.Name } }).ToList(); }); return(result); }