示例#1
0
        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));
        }