public async Task <IEnumerable <Employee> > SearchEmployees(EmployeeFiltrationCriteria criteria) { IQueryable <Employee> queriable = _context.Employees.Include(e => e.Country); if (!string.IsNullOrEmpty(criteria.Name)) { queriable = queriable.Where(e => e.Name == criteria.Name); } if (!string.IsNullOrEmpty(criteria.CountryName)) { queriable = queriable.Where(e => e.Country.CountryName == criteria.CountryName); } if (!string.IsNullOrEmpty(criteria.Title)) { queriable = queriable.Where(e => e.Title == criteria.Title); } if (criteria.SalaryFrom != null) { queriable = queriable.Where(e => e.Salary > criteria.SalaryFrom); } if (criteria.SalaryTo != null) { queriable = queriable.Where(e => e.Salary > criteria.SalaryTo); } return(await queriable.ToListAsync()); }
// GET: Employee public async Task <ActionResult> Index(EmployeeFiltrationCriteria criteria) { var employees = await _uow.EmployeeRepository.SearchEmployees(criteria); var employeeList = employees.Select(e => Mapper.MapToEmployeeViewModel(e)); ViewData.Add("criteria", criteria); return(View(employeeList)); }