Пример #1
0
        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));
        }