Exemplo n.º 1
0
        public PagedList <Podcast> FindByPlaylistId(PodcastToPlaylistParameters parameters)
        {
            var         podcastsToPlaylist = FindByCondition(p => p.PlaylistId == parameters.PlaylistId);
            List <Guid> podcastsId         = podcastsToPlaylist.Select(p => p.PodcastId).ToList();

            var podcasts = RepositoryContext.Podcasts.Where(p => podcastsId.Contains(p.Id));

            SearchByName(ref podcasts, parameters.Name);
            SearchByGenre(ref podcasts, parameters.Genre);
            SearchByAuthorName(ref podcasts, parameters.AuthorName);
            ApplySort(ref podcasts, parameters.OrderBy);

            return(PagedList <Podcast> .ToPagedList(podcasts,
                                                    parameters.PageNumber,
                                                    parameters.PageSize));
        }
Exemplo n.º 2
0
        public IActionResult GetListPodcasts([FromQuery] PodcastToPlaylistParameters parameters)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            string strUserId = User.FindFirstValue(ClaimTypes.NameIdentifier);
            string role      = User.FindFirstValue(ClaimTypes.Role);
            User   user      = _repoWrapper.User.FindByCondition(u => u.Id.ToString() == strUserId).FirstOrDefault();

            if (user == null)
            {
                return(BadRequest("Token is incorrect"));
            }

            PagedList <Podcast> podcasts = _repoWrapper.PodcastToPlaylist.FindByPlaylistId(parameters);

            Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(podcasts.MetaData));

            List <PodcastGetModel> podcastModel = _statisticService.TransformPodcast(podcasts, user.Id);

            return(Ok(podcastModel));
        }