public SCIMGroupQueryResponse getGroups(PaginationProperties pp) { int totalRecords = 0; try { List <SCIMGroup> uList = _cacheService.GetAllSCIMGroups(); totalRecords = uList.Count; int startIndex = pp.startIndex > 0 && pp.startIndex <= totalRecords ? pp.startIndex : 1; int recordCount = startIndex + pp.count <= totalRecords ? pp.count : totalRecords - startIndex + 1; SCIMGroupQueryResponse response = new SCIMGroupQueryResponse(); response.schemas = listResponseSchemas; response.totalResults = totalRecords; response.startIndex = startIndex; response.itemsPerPage = recordCount; response.Resources = uList.GetRange(startIndex - 1, recordCount); return(response); } catch (Exception e) { throw new OnPremUserManagementException("getGroups", e); } }
public async Task <PagedList <Stop> > GetStops(PaginationProperties paginationProperties) { var query = GetAll(); //.OrderBy(s => s.Name); if (!string.IsNullOrEmpty(paginationProperties.SearchQuery)) { // trim & ignore casing var searchQueryForWhereClause = paginationProperties.SearchQuery .Trim().ToLowerInvariant(); query = query .Where(s => s.Name.ToLowerInvariant().Contains(searchQueryForWhereClause) || s.Description.ToLowerInvariant().Contains(searchQueryForWhereClause)); } //query = query.OrderBy(s => s.Name); query = query.ApplySort(paginationProperties.OrderBy, _sortPropertyMappingService.GetPropertyMapping <StopDTO, Stop>()); return(await PagedList <Stop> .Create(query, paginationProperties.PageNumber, paginationProperties.PageSize)); //return await query.ToListAsync(); }
/// <summary> /// Constructor for the rsponse page containing list of objects /// </summary> /// <param name="entities">list of entities to put to the resulting page</param> /// <param name="basePagePath">Url at which current response page was generated</param> /// <param name="paginationProperties">Collection pagination properties</param> public ApiEntityListPage(List <T> entities, string basePagePath, PaginationProperties paginationProperties) : base(basePagePath) { Entities = entities; setupEntitiesLinks(); Pagination = paginationProperties; }
private IEnumerable <LinkDTO> CreateLinksForTrips( PaginationProperties paginationProperties, bool hasNext, bool hasPrevious) { var links = new List <LinkDTO>(); // self links.Add( new LinkDTO(CreateTripsResourceUri(paginationProperties, ResourceUriType.Current) , "self", "GET")); if (hasNext) { links.Add( new LinkDTO(CreateTripsResourceUri(paginationProperties, ResourceUriType.NextPage), "nextPage", "GET")); } if (hasPrevious) { links.Add( new LinkDTO(CreateTripsResourceUri(paginationProperties, ResourceUriType.PreviousPage), "previousPage", "GET")); } return(links); }
public IHttpActionResult getAllUsers(string filter, int startIndex, int count) { logger.Debug("Enter getAllUsers by Filter "); SCIMFilter f = SCIMFilter.TryParse(filter); PaginationProperties pp = new PaginationProperties(count, startIndex); try { Okta.SCIM.Models.SCIMUserQueryResponse rGetUsers = connector.getUsers(pp, f); if (rGetUsers == null) { logger.Debug("Exit no users not found"); return(NotFound()); } else { logger.Debug("Exit Successfully user found "); return(Ok <SCIMUserQueryResponse>(rGetUsers)); } } catch (EntityNotFoundException e) { logger.Debug("Exit entity not found trying to get user"); return(NotFound()); } catch (Exception e) { logger.Debug("Exit Error at getUser "); logger.Error(e); return(InternalServerError(e)); } }
public PaginationHeader(PaginationProperties paginationProperties) { CurrentPage = paginationProperties.CurrentPage; ItemsPerPage = paginationProperties.PageSize; TotalItems = paginationProperties.TotalCount; TotalPages = paginationProperties.TotalPages; }
public async Task <NoContentResult> Get([FromQuery] PaginationProperties pagination) { _eventBus.PublishToTopic(new TimeSeriesAnalysisRequestEvent(), "basic"); await Task.CompletedTask; return(new NoContentResult()); }
public IActionResult DisplayGroups() { PaginationProperties pp = new PaginationProperties(200, 1); cvs_SCIM20.Okta.SCIM.Models.SCIMGroupQueryResponse rGetGroups = _connector.getGroups(pp); _scimGroups = rGetGroups.Resources; return(View(_scimGroups)); }
public IActionResult DisplayUsers() { SCIMFilter myFilter = null; PaginationProperties pp = new PaginationProperties(200, 1); cvs_SCIM20.Okta.SCIM.Models.SCIMUserQueryResponse rGetUsers = _connector.getUsers(pp, myFilter); _scimUsers = rGetUsers.Resources; return(View(_scimUsers)); }
public static void AddPaginationHeader(this HttpResponse response, PaginationProperties paginationProperties) { var paginationHeader = new PaginationHeader(paginationProperties); var JsonOptions = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; response.Headers.Add(Pagination, JsonSerializer.Serialize(paginationHeader, JsonOptions)); response.Headers.Add(AccessControlExposeHeaders, Pagination); }
public IHttpActionResult getAllGroups(int startIndex, int count) { logger.Debug("getAllGroups "); try { PaginationProperties pp = new PaginationProperties(count, startIndex); return(Ok <SCIMGroupQueryResponse>(connector.getGroups(pp))); } catch (Exception e) { return(InternalServerError(e)); } }
public IActionResult getAllGroups(int startIndex, int count) { _logger.LogDebug("getAllGroups "); try { PaginationProperties pp = new PaginationProperties(count, startIndex); return(Ok(_connector.getGroups(pp))); } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, e)); } }
public SCIMUserQueryResponse getUsers(PaginationProperties pageProperties, SCIMFilter filter) { logger.Debug("getUsers by filter "); int totalRecords = 0; try { //List<SCIMUser> uList = users.Values.ToList<SCIMUser>(); List <SCIMUser> uList = _cacheService.GetAllSCIMUsers(); List <SCIMUser> fList = null; if (filter != null) { fList = filterUsers(uList, filter); totalRecords = fList.Count; } else { totalRecords = uList.Count; } int startIndex = pageProperties.startIndex > 0 && pageProperties.startIndex <= totalRecords ? pageProperties.startIndex : 1; int recordCount = startIndex + pageProperties.count <= totalRecords ? pageProperties.count : totalRecords - startIndex + 1; SCIMUserQueryResponse response = new SCIMUserQueryResponse(); //response.schemas = userSchemas; response.schemas = listResponseSchemas; response.totalResults = totalRecords; response.startIndex = startIndex; response.itemsPerPage = recordCount; if (filter != null) { response.Resources = fList.GetRange(startIndex - 1, recordCount); } else { response.Resources = uList.GetRange(startIndex - 1, recordCount); } return(response); } catch (Exception e) { throw new OnPremUserManagementException("getUsers", e); } }
public IHttpActionResult getBulkUsers() { logger.Debug("Enter getBulkUsers "); SCIMFilter f = new SCIMFilter(); PaginationProperties pp = new PaginationProperties(200, 1); try { Okta.SCIM.Models.SCIMUserQueryResponse rGetUsers = connector.getUsers(pp, f); logger.Debug("Exit Successful getBulk Users "); return(Ok <SCIMUserQueryResponse>(rGetUsers)); } catch (Exception e) { logger.Debug("Exit Error at getBulkUsers "); logger.Error(e); return(InternalServerError(e)); } }
private string CreateTripsResourceUri( PaginationProperties paginationProperties, ResourceUriType type) { switch (type) { case ResourceUriType.PreviousPage: return(_urlHelper.Link("GetStops", new { fields = paginationProperties.Fields, orderBy = paginationProperties.OrderBy, searchQuery = paginationProperties.SearchQuery, pageNumber = paginationProperties.PageNumber - 1, pageSize = paginationProperties.PageSize })); case ResourceUriType.NextPage: return(_urlHelper.Link("GetStops", new { fields = paginationProperties.Fields, orderBy = paginationProperties.OrderBy, searchQuery = paginationProperties.SearchQuery, pageNumber = paginationProperties.PageNumber + 1, pageSize = paginationProperties.PageSize })); default: return(_urlHelper.Link("GetStops", new { fields = paginationProperties.Fields, orderBy = paginationProperties.OrderBy, searchQuery = paginationProperties.SearchQuery, pageNumber = paginationProperties.PageNumber, pageSize = paginationProperties.PageSize })); } }
public async Task <ResourceDataResult> GetStops(PaginationProperties paginationProperties) { ResourceDataResult result = new ResourceDataResult(); if (!_sortPropertyMappingService.ValidMappingExistsFor <StopDTO, Stop>(paginationProperties.OrderBy)) { result.StatusCode = 400; result.ErrorMessage = "Invalid sorting field in query string."; return(result); } PagedList <Stop> stops = await _stopRepo.GetStops(paginationProperties); //PagedList<StopDTO> stopModels = new PagedList<StopDTO>(StopMapper.ConvertEntityToModel(stops), stops.Count, stops.CurrentPage, stops.PageSize); if (stops != null && stops.Count > 0) { result.Result = new PagedList <StopDTO>(StopMapper.ConvertEntityToModel(stops), stops.TotalCount, stops.CurrentPage, stops.PageSize); } return(result); }
public IActionResult getUsers([FromQuery] string filter, [RequiredFromQuery] int startIndex, [RequiredFromQuery] int count) { _logger.LogDebug("Enter getAllUsers by Filter "); SCIMFilter myFilter = null; if (!string.IsNullOrEmpty(filter)) { myFilter = SCIMFilter.TryParse(filter); } PaginationProperties pp = new PaginationProperties(count, startIndex); try { cvs_SCIM20.Okta.SCIM.Models.SCIMUserQueryResponse rGetUsers = _connector.getUsers(pp, myFilter); if (rGetUsers == null) { _logger.LogDebug("Exit no users not found"); return(NotFound()); } else { _logger.LogDebug("Exit Successfully user found "); return(Ok(rGetUsers)); } } catch (EntityNotFoundException e) { _logger.LogDebug("Exit entity not found trying to get user"); return(NotFound()); } catch (Exception e) { _logger.LogDebug("Exit Error at getUser "); _logger.LogError(e.ToString()); return(StatusCode(StatusCodes.Status500InternalServerError, e)); } }
public async Task <IActionResult> GetStops( PaginationProperties paginationProperties, [FromHeader(Name = "Accept")] string mediaType) { if (!_typeHelperService.TypeHasProperties <StopDTO>(paginationProperties.Fields)) { return(BadRequest()); } ResourceDataResult result = await _stopBus.GetStops(paginationProperties); if (result.StatusCode != 0) { return(StatusCode(result.StatusCode, result.ErrorMessage)); } PagedList <StopDTO> stops = result.Result as PagedList <StopDTO>; if (stops == null || stops.Count() == 0) { return(NotFound()); } if (mediaType == "application/hateoas+json") { var paginationMetadata = new { totalCount = stops.TotalCount, pageSize = stops.PageSize, currentPage = stops.CurrentPage, totalPages = stops.TotalPages, }; Response.Headers.Add("X-Pagination", Serializer.JsonSerialize(paginationMetadata)); var links = CreateLinksForStops(paginationProperties, stops.HasNext, stops.HasPrevious); var shapedStops = stops.ShapeEnumerableData(paginationProperties.Fields); var shapedStopsWithLinks = shapedStops.Select(stop => { var stopAsDictionary = stop as IDictionary <string, object>; var stopLinks = CreateLinksForStop( (int)stopAsDictionary["Id"], paginationProperties.Fields); stopAsDictionary.Add("links", stopLinks); return(stopAsDictionary); }); var linkedCollectionResource = new { value = shapedStopsWithLinks, links = links }; return(Ok(linkedCollectionResource)); } else { var previousPageLink = stops.HasPrevious ? CreateStopsResourceUri(paginationProperties, ResourceUriType.PreviousPage) : null; var nextPageLink = stops.HasNext ? CreateStopsResourceUri(paginationProperties, ResourceUriType.NextPage) : null; var paginationMetadata = new { totalCount = stops.TotalCount, pageSize = stops.PageSize, currentPage = stops.CurrentPage, totalPages = stops.TotalPages, previousPageLink = previousPageLink, nextPageLink = nextPageLink }; Response.Headers.Add("X-Pagination", Serializer.JsonSerialize(paginationMetadata)); return(Ok(stops.ShapeEnumerableData(paginationProperties.Fields))); } }
public async Task <NoContentResult> Get([FromQuery] PaginationProperties pagination) { return(NoContent()); }