コード例 #1
0
        public IActionResult GetNearTrips(GetTripsResourceParameters resourceParameters)
        {
            var toReturn = _tripsRepo.GetNearTrips(resourceParameters.Longitude, resourceParameters.Latitude, resourceParameters);

            var prevLink = toReturn.HasPrevious
                ? CreateTripsResourceUri(resourceParameters, ResourceUriType.PrevoiusPage, nameof(GetNearTrips)) : null;

            var nextLink = toReturn.HasNext
                ? CreateTripsResourceUri(resourceParameters, ResourceUriType.NextPage, nameof(GetNearTrips)) : null;

            Response.Headers.Add("X-Pagination", Helpers.PaginationMetadata.GeneratePaginationMetadata(toReturn, resourceParameters, prevLink, nextLink));

            return(Ok(toReturn.ToList()));
        }
コード例 #2
0
        private string CreateTripsResourceUri(GetTripsResourceParameters resourceParameters, ResourceUriType type, string getMethodName)
        {
            switch (type)
            {
            case ResourceUriType.PrevoiusPage:
                return(_urlHelper.Link(getMethodName,
                                       new
                {
                    pageNumber = resourceParameters.PageNumber - 1,
                    pageSize = resourceParameters.PageSize,
                    longitude = resourceParameters.Longitude,
                    latitude = resourceParameters.Latitude
                }));

            case ResourceUriType.NextPage:
                return(_urlHelper.Link(getMethodName,
                                       new
                {
                    pageNumber = resourceParameters.PageNumber + 1,
                    pageSize = resourceParameters.PageSize,
                    longitude = resourceParameters.Longitude,
                    latitude = resourceParameters.Latitude
                }));

            case ResourceUriType.Current:
            default:
                return(_urlHelper.Link(getMethodName,
                                       new
                {
                    pageNumber = resourceParameters.PageNumber,
                    pageSize = resourceParameters.PageSize,
                    longitude = resourceParameters.Longitude,
                    latitude = resourceParameters.Latitude
                }));
            }
        }