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();
        }
Пример #3
0
 /// <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));
            }
        }
Пример #6
0
 public PaginationHeader(PaginationProperties paginationProperties)
 {
     CurrentPage  = paginationProperties.CurrentPage;
     ItemsPerPage = paginationProperties.PageSize;
     TotalItems   = paginationProperties.TotalCount;
     TotalPages   = paginationProperties.TotalPages;
 }
Пример #7
0
        public async Task <NoContentResult> Get([FromQuery] PaginationProperties pagination)
        {
            _eventBus.PublishToTopic(new TimeSeriesAnalysisRequestEvent(), "basic");

            await Task.CompletedTask;

            return(new NoContentResult());
        }
Пример #8
0
        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));
        }
Пример #9
0
        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));
        }
Пример #10
0
        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
                }));
            }
        }
Пример #16
0
        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)));
            }
        }
Пример #19
0
 public async Task <NoContentResult> Get([FromQuery] PaginationProperties pagination)
 {
     return(NoContent());
 }