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)); }
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)); }