Imgur.API.Endpoints.Impl.TopicEndpoint.GetGalleryTopicItemsAsync C# (CSharp) Method

GetGalleryTopicItemsAsync() public method

View gallery items for a topic.
/// Thrown when a null reference is passed to a method that does not accept it as a /// valid argument. /// Thrown when an error is found in a response from an Imgur endpoint. Thrown when an error is found in a response from a Mashape endpoint.
public GetGalleryTopicItemsAsync ( string topicId, CustomGallerySortOrder sort = CustomGallerySortOrder.Viral, TimeWindow window = TimeWindow.Week, int page = null ) : Task>
topicId string /// The ID or URL-formatted name of the topic. If using a topic's name, replace its spaces with /// underscores (Mother's_Day). ///
sort CustomGallerySortOrder The order that the gallery should be sorted by. Default: Viral
window TimeWindow The time period that should be used in filtering requests. Default: Week
page int The data paging number. Default: null
return Task>
        public async Task<IEnumerable<IGalleryItem>> GetGalleryTopicItemsAsync(string topicId,
            CustomGallerySortOrder? sort = CustomGallerySortOrder.Viral, TimeWindow? window = TimeWindow.Week,
            int? page = null)
        {
            if (string.IsNullOrWhiteSpace(topicId))
                throw new ArgumentNullException(nameof(topicId));

            sort = sort ?? CustomGallerySortOrder.Viral;
            window = window ?? TimeWindow.Week;

            var sortValue = $"{sort}".ToLower();
            var windowValue = $"{window}".ToLower();
            var url = $"topics/{topicId.Replace(" ", "_")}/{sortValue}/{windowValue}/{page}";

            using (var request = RequestBuilder.CreateRequest(HttpMethod.Get, url))
            {
                var items = await SendRequestAsync<IEnumerable<GalleryItem>>(request).ConfigureAwait(false);
                return items;
            }
        }
    }

Usage Example

        public async Task GetGalleryTopicItemsAsync_True()
        {
            var mockUrl = "https://api.imgur.com/3/topics/Current_Events/top/day/3";
            var mockResponse = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(MockTopicEndpointResponses.GetGalleryTopicItems)
            };

            var client = new ImgurClient("123", "1234");
            var endpoint = new TopicEndpoint(client, new HttpClient(new MockHttpMessageHandler(mockUrl, mockResponse)));
            var items =
                await
                    endpoint.GetGalleryTopicItemsAsync("Current Events", CustomGallerySortOrder.Top, TimeWindow.Day, 3)
                        .ConfigureAwait(false);

            Assert.True(items.Any());
        }
All Usage Examples Of Imgur.API.Endpoints.Impl.TopicEndpoint::GetGalleryTopicItemsAsync