Esempio n. 1
0
        private string CreateUsersResourceUri(
            int[] ids,
            ResourceParametersBase resourceParameters,
            ResourceUriType type)
        {
            var usersParameters = resourceParameters as UsersResourceParameters;

            switch (type)
            {
            case ResourceUriType.PreviousPage:
                return(Url.Link(nameof(GetUsers),
                                new
                {
                    pageNumber = usersParameters.PageNumber - 1,
                    pageSize = usersParameters.PageSize,
                }));

            case ResourceUriType.NextPage:
                return(Url.Link(nameof(GetUsers),
                                new
                {
                    pageNumber = usersParameters.PageNumber + 1,
                    pageSize = usersParameters.PageSize,
                }));

            case ResourceUriType.Current:
            default:
                return(Url.Link(nameof(GetUsers),
                                new
                {
                    pageNumber = usersParameters.PageNumber,
                    pageSize = usersParameters.PageSize,
                }));
            }
        }
Esempio n. 2
0
        private string CreateCommentsResourceUri(
            int[] ids,
            ResourceParametersBase resourceParameters,
            ResourceUriType type)
        {
            var commentParameters = resourceParameters as CommentsResourceParameters;
            var userId            = ids[0];
            var blogId            = ids[1];
            var postId            = ids[2];

            switch (type)
            {
            case ResourceUriType.PreviousPage:
                return(Url.Link(nameof(GetComments),
                                new
                {
                    userId,
                    blogId,
                    postId,
                    pageNumber = commentParameters.PageNumber - 1,
                    pageSize = commentParameters.PageSize
                }));

            case ResourceUriType.NextPage:
                return(Url.Link(nameof(GetComments),
                                new
                {
                    userId,
                    blogId,
                    postId,
                    pageNumber = commentParameters.PageNumber + 1,
                    pageSize = commentParameters.PageSize
                }));

            case ResourceUriType.Current:
            default:
                return(Url.Link(nameof(GetComments),
                                new
                {
                    userId,
                    blogId,
                    postId,
                    pageNumber = commentParameters.PageNumber,
                    pageSize = commentParameters.PageSize
                }));
            }
        }
Esempio n. 3
0
        private string CreatePostsResourceUri(
            int[] ids,
            ResourceParametersBase resourceParameters,
            ResourceUriType type)
        {
            var postParameters = resourceParameters as PostsResourceParameters;
            var userId         = ids[0];
            var blogId         = ids[1];

            switch (type)
            {
            case ResourceUriType.PreviousPage:
                return(Url.Link(nameof(GetPosts),
                                new
                {
                    userId,
                    blogId,
                    searchQuery = postParameters.SearchQuery,
                    pageNumber = postParameters.PageNumber - 1,
                    pageSize = postParameters.PageSize,
                }));

            case ResourceUriType.NextPage:
                return(Url.Link(nameof(GetPosts),
                                new
                {
                    userId,
                    blogId,
                    searchQuery = postParameters.SearchQuery,
                    pageNumber = postParameters.PageNumber + 1,
                    pageSize = postParameters.PageSize,
                }));

            case ResourceUriType.Current:
            default:
                return(Url.Link(nameof(GetPosts),
                                new
                {
                    userId,
                    blogId,
                    searchQuery = postParameters.SearchQuery,
                    pageNumber = postParameters.PageNumber,
                    pageSize = postParameters.PageSize,
                }));
            }
        }
Esempio n. 4
0
        public static List <LinkDto> Create(
            CreateResourceUri createResourceUri,
            int[] ids,
            ResourceParametersBase resourceParameters,
            bool hasPrevious,
            bool hasNext)
        {
            var links = new List <LinkDto>
            {
                new LinkDto(createResourceUri(
                                ids,
                                resourceParameters,
                                ResourceUriType.Current),
                            "self",
                            HttpMethods.Get)
            };

            if (hasPrevious)
            {
                links.Add(new LinkDto(createResourceUri(
                                          ids,
                                          resourceParameters,
                                          ResourceUriType.PreviousPage),
                                      "previousPage",
                                      HttpMethods.Get));
            }

            if (hasNext)
            {
                links.Add(new LinkDto(createResourceUri(
                                          ids,
                                          resourceParameters,
                                          ResourceUriType.NextPage),
                                      "nextPage",
                                      HttpMethods.Get));
            }

            return(links);
        }
        private string CreateBlogsResourceUri(
            int[] ids,
            ResourceParametersBase resourceParameters,
            ResourceUriType type)
        {
            var blogParameters = resourceParameters as BlogsResourceParameters;

            switch (type)
            {
            case ResourceUriType.PreviousPage:
                return(Url.Link(nameof(GetBlogsForAllUsers),
                                new
                {
                    searchQuery = blogParameters.SearchQuery,
                    pageNumber = blogParameters.PageNumber - 1,
                    pageSize = blogParameters.PageSize,
                }));

            case ResourceUriType.NextPage:
                return(Url.Link(nameof(GetBlogsForAllUsers),
                                new
                {
                    searchQuery = blogParameters.SearchQuery,
                    pageNumber = blogParameters.PageNumber + 1,
                    pageSize = blogParameters.PageSize,
                }));

            case ResourceUriType.Current:
            default:
                return(Url.Link(nameof(GetBlogsForAllUsers),
                                new
                {
                    searchQuery = blogParameters.SearchQuery,
                    pageNumber = blogParameters.PageNumber,
                    pageSize = blogParameters.PageSize,
                }));
            }
        }