コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: VkApi.cs プロジェクト: leshacsharp/Pixemo
        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));
        }
コード例 #5
0
ファイル: VkApi.cs プロジェクト: leshacsharp/Pixemo
        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));
        }
コード例 #6
0
ファイル: PixabayApi.cs プロジェクト: leshacsharp/Pixemo
        public VideoResult SearchVideos(VideosSearchParams param)
        {
            var videos = Api.QueryVideosAsync(new VideoQueryBuilder()
            {
                Query = param.Query, PerPage = param.Count, Page = param.Offset
            });

            return(GetMapperVideos(videos.Result));
        }
コード例 #7
0
ファイル: PixabayApi.cs プロジェクト: leshacsharp/Pixemo
        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));
        }