public IList <EmployeeSearchModel> GetEmployeeByCriteriaList(CriteriaSearch criteriaSearch, out int total) { var query = from employee in employeeRepository.GetAll() join department in departmentRepository.GetAll() on employee.DepartmentId equals department.Id select new EmployeeSearchModel { Id = employee.Id, FirstName = employee.FirstName, LastName = employee.LastName, Birthday = employee.Birthday, Email = employee.Email, Phone = employee.Phone, Department = department.Name, Avatar = string.IsNullOrEmpty(employee.Avatar) ? "male.png" : employee.Avatar }; if (!string.IsNullOrEmpty(criteriaSearch.SearchTerm)) { query = query.Where(x => x.FirstName.Contains(criteriaSearch.SearchTerm) || x.LastName.Contains(criteriaSearch.SearchTerm)); } total = query.Count(); query = query.OrderBy(criteriaSearch.SortColumn, criteriaSearch.SortDirection); return(query.Skip((criteriaSearch.CurrentPage - 1) * criteriaSearch.ItemPerPage).Take(criteriaSearch.ItemPerPage).ToList()); }
public IHttpActionResult GetEmployeesByCriteria([FromUri] CriteriaSearch criteriaSearch) { int total; var result = employeeService.GetEmployeeByCriteriaList(criteriaSearch, out total); var data = new { listEmployee = result, totalItems = total }; return(Ok(data)); }