public IActionResult PageAgentSupervisor([FromQuery] UserAgentFilterDto filters) { var result = _service.GetPageUserAgent(filters); if (!result.IsSuccess) { return(BadRequest(result)); } return(Ok(result.Response)); }
public ServiceResult <PagedResult <AllSupervisorAgentDto> > GetPageUserAgent(UserAgentFilterDto filters) { const int pageSize = 10; var resultFull = _Context.SupervisorUserAgents .Include(S => S.Agents) .Include(S1 => S1.Supervisors) .Include(S2 => S2.Supervisors2) .Where( x => ( (string.IsNullOrEmpty(filters.FirstName) || x.Agents.FirstName.ToUpper().Contains(filters.FirstName.ToUpper())) || (string.IsNullOrEmpty(filters.FirstName) || x.Supervisors.FirstName.ToUpper().Contains(filters.FirstName.ToUpper())) || (string.IsNullOrEmpty(filters.FirstName) || x.Supervisors2.FirstName.ToUpper().Contains(filters.FirstName.ToUpper())) ) && ( (string.IsNullOrEmpty(filters.LastName) || x.Agents.LastName.ToUpper().Contains(filters.LastName.ToUpper())) || (string.IsNullOrEmpty(filters.LastName) || x.Supervisors.LastName.ToUpper().Contains(filters.LastName.ToUpper())) || (string.IsNullOrEmpty(filters.LastName) || x.Supervisors2.LastName.ToUpper().Contains(filters.LastName.ToUpper())) ) && (!x.IsDeleted) && (x.Agents == null || !x.Agents.SuperAdmin) && (x.Supervisors == null || !x.Supervisors.SuperAdmin) && (x.Supervisors2 == null || !x.Supervisors2.SuperAdmin) ); var resultPage = resultFull.Skip((filters.Page ?? 0) * pageSize) .Take(pageSize) .ProjectTo <AllSupervisorAgentDto>() .ToList(); if (resultPage.Count() == 0 && filters.Page > 0) { resultPage = resultFull.Skip(((filters.Page ?? 0) - 1) * pageSize) .Take(pageSize) .ProjectTo <AllSupervisorAgentDto>() .ToList(); } return(new ServiceResult <PagedResult <AllSupervisorAgentDto> >( new PagedResult <AllSupervisorAgentDto>() { List = resultPage, TotalRecords = resultFull.Count() } )); }