Exemplo n.º 1
0
        public static Expression <Func <VideoYoutube, bool> > CreateQueryCondition(VideoYouSearch search)
        {
            Expression <Func <VideoYoutube, bool> > expression               = default;
            Expression <Func <VideoYoutube, bool> > expressionTitle          = x => x.YoutubeSearchResultSnippet.Title == search.Title;
            Expression <Func <VideoYoutube, bool> > expressionChanel         = x => x.YoutubeSearchResultSnippet.ChannelTitle == search.ChannelTitle;
            Expression <Func <VideoYoutube, bool> > expressionPublishedAfter = x => DateTime.Parse(x.YoutubeSearchResultSnippet.PublishedAt) >= search.publishedAfter;
            Expression <Func <VideoYoutube, bool> > expressionQ              = CreateParameterQ(search.Q);

            if (!string.IsNullOrEmpty(search.Title))
            {
                expression = expressionTitle;
            }

            if (!string.IsNullOrEmpty(search.ChannelTitle))
            {
                expression = expression == null ? expressionChanel : UpdateParameter(expressionChanel, expression.Parameters[0]);
            }

            if (search.publishedAfter != default)
            {
                expression = expression == null ? expressionPublishedAfter : UpdateParameter(expressionPublishedAfter, expression.Parameters[0]);
            }

            if (!string.IsNullOrEmpty(search.Q))
            {
                expression = expression == null ? expressionQ : UpdateParameter(expressionQ, expression.Parameters[0]);
            }

            return(expression);
        }
Exemplo n.º 2
0
        public IResult GetQuery([FromQuery] VideoYouSearch search)
        {
            try
            {
                var videos = Enumerable.Empty <VideoYoutube>();

                videos = _apiYouTubeService.Query(search);

                return(!videos.Any() ? ViewModelResult("Não há videos cadastrados") : ViewModelResult(videos));
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "Falha ao selecionar videos.");

                return(ErrorResult("Falha ao selecionar videos"));
            }
        }
Exemplo n.º 3
0
        public IEnumerable <VideoYoutube> Query(VideoYouSearch search)
        {
            try
            {
                var videos = _database.VideosYoutube
                             .Include(x => x.ResourceVideoYoutube)
                             .Include(x => x.YoutubeSearchResultSnippet).ThenInclude(x => x.YoutubeThumbnailDetails).ThenInclude(k => k.YoutubeThumbnailDefault)
                             .Include(x => x.YoutubeSearchResultSnippet).ThenInclude(x => x.YoutubeThumbnailDetails).ThenInclude(k => k.YoutubeThumbnailHigh)
                             .Include(x => x.YoutubeSearchResultSnippet).ThenInclude(x => x.YoutubeThumbnailDetails).ThenInclude(k => k.YoutubeThumbnailMaxres)
                             .Include(x => x.YoutubeSearchResultSnippet).ThenInclude(x => x.YoutubeThumbnailDetails).ThenInclude(k => k.YoutubeThumbnailMedium)
                             .Include(x => x.YoutubeSearchResultSnippet).ThenInclude(x => x.YoutubeThumbnailDetails).ThenInclude(k => k.YoutubeThumbnailStandard)
                             .AsNoTracking()
                             .Where(VideoYoutubeQuery.CreateQueryCondition(search))
                             .AsEnumerable();

                return(videos);
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "Falha ao selecionar videos.");

                throw;
            }
        }