public async Task <PagedList <Entity> > GetRoles(RoleQueryParameters roleParameters) { var roles = FindAll(); var filteredRoles = FilterRoles(roles, roleParameters); var sortedRoles = SortHelper.ApplySort(filteredRoles, roleParameters.OrderBy); var pagedRoles = sortedRoles; if (!roleParameters.SkipPageSize) { pagedRoles = sortedRoles .Skip((roleParameters.PageNumber - 1) * roleParameters.PageSize) .Take(roleParameters.PageSize); } var mappedRoles = pagedRoles .ProjectTo <RoleDTO>(_mapper.ConfigurationProvider); var shapedRoles = DataShaper.ShapeData(mappedRoles, roleParameters.Fields); return(await PagedList <Entity> .ToPagedList(shapedRoles, filteredRoles.Count(), roleParameters.PageNumber, roleParameters.PageSize)); }
/// <summary> /// Gets the roles. /// </summary> /// <param name="roleParameters">The role parameters.</param> /// <returns></returns> public async Task <CSSResponse> GetRoles(RoleQueryParameters roleParameters) { var roles = await _repository.Roles.GetRoles(roleParameters); _httpContextAccessor.HttpContext.Response.Headers.Add("X-Pagination", PagedList <Entity> .ToJson(roles)); return(new CSSResponse(roles, HttpStatusCode.OK)); }
private IQueryable <Role> FilterRoles(IQueryable <Role> roles, RoleQueryParameters roleQueryParameters) { if (!roles.Any() || string.IsNullOrWhiteSpace(roleQueryParameters.SearchKeyword)) { return(roles); } return(roles.Where(o => o.Name.ToLower().Contains(roleQueryParameters.SearchKeyword.Trim().ToLower()))); }
public async Task <IActionResult> GetRoles([FromQuery] RoleQueryParameters roleParameters) { var result = await _roleService.GetRoles(roleParameters); return(StatusCode((int)result.Code, result.Value)); }