public async Task <PagedList <Entity> > GetUserPermissions(UserPermissionQueryParameters userPermissionParameters) { var userPermissions = FindByCondition(x => x.IsDeleted == false && x.Role.Name != "Agent"); var filteredAgents = FilterUserPermissions(userPermissions, userPermissionParameters) .Include(x => x.Role); var sortedAgents = SortHelper.ApplySort(filteredAgents, userPermissionParameters.OrderBy); var pagedAgents = sortedAgents; if (!userPermissionParameters.SkipPageSize) { pagedAgents = sortedAgents .Skip((userPermissionParameters.PageNumber - 1) * userPermissionParameters.PageSize) .Take(userPermissionParameters.PageSize) .Include(x => x.Role); } var mappedAgents = pagedAgents .ProjectTo <UserPermissionDTO>(_mapper.ConfigurationProvider); var shapedAgents = DataShaper.ShapeData(mappedAgents, userPermissionParameters.Fields); return(await PagedList <Entity> .ToPagedList(shapedAgents, filteredAgents.Count(), userPermissionParameters.PageNumber, userPermissionParameters.PageSize)); }
/// <summary> /// Gets the userPermissions. /// </summary> /// <param name="userPermissionParameters">The userPermission parameters.</param> /// <returns></returns> public async Task <CSSResponse> GetUserPermissions(UserPermissionQueryParameters userPermissionParameters) { var userPermissions = await _repository.UserPermissions.GetUserPermissions(userPermissionParameters); _httpContextAccessor.HttpContext.Response.Headers.Add("X-Pagination", PagedList <Entity> .ToJson(userPermissions)); return(new CSSResponse(userPermissions, HttpStatusCode.OK)); }
private IQueryable <UserPermission> FilterUserPermissions(IQueryable <UserPermission> userPermissions, UserPermissionQueryParameters userPermissionQueryParameters) { if (!userPermissions.Any() || string.IsNullOrWhiteSpace(userPermissionQueryParameters.SearchKeyword)) { return(userPermissions); } if (!string.IsNullOrWhiteSpace(userPermissionQueryParameters.SearchKeyword)) { userPermissions = userPermissions.Where(o => (o.EmployeeId.ToLower().Contains(userPermissionQueryParameters.SearchKeyword.Trim().ToLower())) || (o.Firstname.ToLower().Contains(userPermissionQueryParameters.SearchKeyword.Trim().ToLower())) || (o.Lastname.ToLower().Contains(userPermissionQueryParameters.SearchKeyword.Trim().ToLower())) ); } return(userPermissions); }
public async Task <IActionResult> GetAgents([FromQuery] UserPermissionQueryParameters agentParameters) { var result = await _agentService.GetUserPermissions(agentParameters); return(StatusCode((int)result.Code, result.Value)); }