Ejemplo n.º 1
0
        public PaginatedResults <EmployeeGridDto> Search(EmployeeSearch search)
        {
            var query = _employeeRepository.Query.ProjectTo <EmployeeGridDto>(_mapper.ConfigurationProvider);

            if (!search.Filter.IsNotNullOrEmpy() || !search.Filter.HasValue())
            {
                return(_employeeRepository.PaginatedSearch(query, search));
            }

            var filter = search.Filter.ToUpper();
            var cb     = new CriteriaBuilder <EmployeeGridDto>();

            cb.Or(c => c.FirstName != null && c.FirstName.ToUpper().Contains(filter));
            cb.Or(c => c.LastName != null && c.LastName.ToUpper().Contains(filter));
            cb.Or(c => c.Email != null && c.Email.ToUpper().Contains(filter));
            cb.Or(c => c.PhoneNumber != null && c.PhoneNumber.ToUpper().Contains(filter));
            query = query.AsExpandable().Where(cb.GetCondition());
            return(_employeeRepository.PaginatedSearch(query, search));
        }