public FindWorkersResponse Find(FindWorkersRequest request)
        {
            try
            {
                _workerQuery.WithOnlyActivated(true);
                _workerQuery.WithOnlyStatusActivated(request.OnlyStatusActivated);
                _workerQuery.WithOnlyStatusDeactivated(request.OnlyStatusDeactivated);
                _workerQuery.WithDepartment(request.DepartmentId);
                _workerQuery.WithJob(request.JobId);
                _workerQuery.WithRole(request.RoleId);
                _workerQuery.WithBranch(request.BranchId);
                _workerQuery.WithCode(request.Code);
                _workerQuery.WithEmail(request.Email);
                _workerQuery.WithBadge(request.Badge);
                _workerQuery.WithImss(request.Imss);
                _workerQuery.Sort(request.Sort, request.SortBy);
                var totalRecords = _workerQuery.TotalRecords();
                _workerQuery.Paginate(request.StartPage, request.EndPage);
                var workers = _workerQuery.Execute();

                return(new FindWorkersResponse
                {
                    Workers = TypeAdapter.Adapt <List <WorkerResponse> >(workers),
                    TotalRecords = totalRecords
                });
            }
            catch (DataAccessException)
            {
                throw new ApplicationException();
            }
        }
 public FindWorkersResponse Get(FindWorkersRequest request)
 {
     return(_workerService.Find(request));
 }