public VideoResult SearchVideos(VideosSearchParams param) { ObjectCache cache = MemoryCache.Default; string key = $"{param.Query}.{param.Offset}"; var videos = cache.Get(key) as VideoResult; if (videos == null) { CacheItemPolicy policy = new CacheItemPolicy() { SlidingExpiration = TimeSpan.FromMinutes(5) }; var qualityVideos = _pixabayApi.SearchVideos(param); if (qualityVideos?.TotalCount > 30) { cache.Add(key, qualityVideos, policy); return(qualityVideos); } else { param.Offset = param.Offset * param.Count; var vkVideos = _vkApi.SearchVideos(param); cache.Add(key, vkVideos, policy); return(vkVideos); } } return(videos); }
public async Task <JsonResult> Videos(string query, int?outOffsetMedia = 1) { var a = new VideosSearchParams(query, 20, outOffsetMedia); var videos = await _mediaService.SearchVideosAsync(a); return(Json(videos.Videos, JsonRequestBehavior.DenyGet)); }
public async Task <VideoResult> SearchVideosAsync(VideosSearchParams param) { ObjectCache cache = MemoryCache.Default; string key = $"{param.Query}.{param.Offset}"; var videos = cache.Get(key) as VideoResult; if (videos == null) { CacheItemPolicy policy = new CacheItemPolicy() { SlidingExpiration = TimeSpan.FromMinutes(5) }; var qualityVideos = await _pixabayApi.SearchVideosAsync(param); if (qualityVideos?.TotalCount > 30) { cache.Add(key, qualityVideos, policy); return(qualityVideos); } else { //изначально сдвиг идет по страницам , //поэтому если страница 2 то сдвиг нужно умножить на кол во картинок которое мы ищем param.Offset = param.Offset * param.Count; var vkVideos = await _vkApi.SearchVideosAsync(param); cache.Add(key, vkVideos, policy); return(vkVideos); } } return(videos); }
public VideoResult SearchVideos(VideosSearchParams param) { var videos = Api.Video.Search(new VkNet.Model.RequestParams.VideoSearchParams() { Query = param.Query, Count = param.Count, Offset = param.Offset }); return(GetMapperVideos(videos)); }
public async Task <VideoResult> SearchVideosAsync(VideosSearchParams param) { var videos = await Api.Video.SearchAsync(new VkNet.Model.RequestParams.VideoSearchParams() { Query = param.Query, Count = param.Count, Offset = param.Offset }); return(GetMapperVideos(videos)); }
public VideoResult SearchVideos(VideosSearchParams param) { var videos = Api.QueryVideosAsync(new VideoQueryBuilder() { Query = param.Query, PerPage = param.Count, Page = param.Offset }); return(GetMapperVideos(videos.Result)); }
public async Task <VideoResult> SearchVideosAsync(VideosSearchParams param) { var videos = await Api.QueryVideosAsync(new VideoQueryBuilder() { Query = param.Query, PerPage = param.Count, Page = param.Offset }); return(GetMapperVideos(videos)); }