public Task <GiphyDto[]> GetAsync(string query, int limit, int offset) { var key = GetCacheKey(query, limit, offset); return(_cache.GetOrCreateAsync(key, async() => { var model = await _client.SearchAsync(query, limit, offset); return model.ToDtosArray(); })); }
private async static Task TestWithTasks() { var config = new GiphyApiClientConfig(); var restClient = new RestClient(config.BaseUrl); var giphyClient = new GiphyClient(restClient, config); //tests. Console.WriteLine("\nPerforming gifs Tasks..."); var searchTask = await giphyClient.SearchAsync(new SearchParams("Barf") .WithLimit(5) .WithOffset(2) .WithRating("g") .WithLanguage("fr")); Console.WriteLine("\nsearch task results"); HandleMultipleCallback(searchTask); var trendingResult = await giphyClient.TrendingAsync(new TrendingParams(contentRating : "pg-13") .WithFormat("json") .WithLimit(10) .WithOffset(3) .WithRating("g")); Console.WriteLine("trending task results"); HandleMultipleCallback(trendingResult); var translateResult = await giphyClient.TranslateAsync(new TranslateParams(search : "chewy")); Console.WriteLine("translate Task results"); HandleSingleCallback(translateResult); var randomResult = await giphyClient.RandomAsync(new RandomParams() .WithTag("kanye") .WithFormat("json") .WithRating("g")); Console.WriteLine("random task results"); HandleRandomCallback(randomResult); var idResult = await giphyClient.GifByIdAsync(new GifByIdParams(gifId : "3oriNV6Cxf43fczQje")); Console.WriteLine("id task results"); HandleSingleCallback(idResult); var idsResult = await giphyClient.GifsByIdsAsync(new GifsByIdParams(gifIds : new string[] { "3oriNV6Cxf43fczQje", "3oriNRqnlzW4LwLUqI" })); Console.WriteLine("ids task results"); HandleMultipleCallback(idsResult); Console.WriteLine("\nPerforming Stickers Tasks..."); var searchStickersResult = await giphyClient.StickerSearchAsync(new SearchParams("Barf")); Console.WriteLine("search stickers results"); HandleMultipleCallback(searchStickersResult); var trendingStickersResult = await giphyClient.StickerTrendingAsync(new TrendingParams() .WithFormat("json") .WithLimit(10) .WithOffset(0) .WithRating("g")); Console.WriteLine("trending stickers results"); HandleMultipleCallback(trendingStickersResult); var translateStickersResult = await giphyClient.StickerTranslateAsync(new TranslateParams("larb")); Console.WriteLine("translate stickers results"); HandleSingleCallback(translateStickersResult); var randomStickersResult = await giphyClient.StickerRandomAsync(new RandomParams() .WithTag("beef") .WithFormat("json") .WithRating("g")); Console.WriteLine("random stickers results"); HandleRandomCallback(randomStickersResult); }