Example #1
0
            public PodcastDto GetPodcastForReview(string rssFeedUrl)
            {
                var dto = new PodcastDto
                {
                    FeedUrl = rssFeedUrl
                };

                var feed = new RssFeed();

                try
                {
                    feed = _rssParser.ParseRssFeed(rssFeedUrl);
                }
                catch (Exception ex)
                {
                    dto.SuccessResult = SuccessResult.Error;
                }

                if (feed == null)
                {
                    return(dto);
                }
                var siteUrl = GetSiteUrl(feed.SyndicationFeed);

                dto.Title         = feed.SyndicationFeed.Title?.Text;
                dto.Description   = feed.SyndicationFeed.Description?.Text;
                dto.ImageUrl      = feed.SyndicationFeed.ImageUrl?.AbsoluteUri;
                dto.FeedUrl       = rssFeedUrl;
                dto.SiteUrl       = siteUrl;
                dto.SuccessResult = SuccessResult.Success;

                return(dto);
            }
Example #2
0
        public void AddEpisodesToPodcast(PodcastDto dto)
        {
            var podcast = _context.Podcasts.Single(i => i.Id == dto.Id);

            foreach (var episodeDto in dto.Episodes)
            {
                var episode = new Episode
                {
                    EpisodeId     = episodeDto.EpisodeId,
                    Title         = episodeDto.Title,
                    Summary       = episodeDto.Summary,
                    AudioUrl      = episodeDto.AudioUrl,
                    EpisodeUrl    = episodeDto.EpisodeUrl,
                    DatePublished = episodeDto.DatePublished,
                    DateCreated   = episodeDto.DateCreated
                };

                var episodeAlreadyExists = _context.Episodes.Any(i => i.Title == episode.Title);
                if (!episodeAlreadyExists)
                {
                    podcast.Episodes.Add(episode);
                }
                else
                {
                    Console.Write("Episode already exists");
                }
            }
            podcast.IsApproved   = true;
            podcast.DateApproved = DateTime.Now;
            _context.SaveChanges();
        }
Example #3
0
        public async Task UpdatePodcast(PodcastDto dto)
        {
            var podcast = _context
                          .Podcasts
                          .Where(i => i.Id == dto.Id)
                          .Include(i => i.Tags)
                          .FirstOrDefault();

            if (podcast != null)
            {
                podcast.Title       = dto.Title;
                podcast.Description = dto.Description;
                podcast.ImageUrl    = dto.ImageUrl;
                podcast.FeedUrl     = dto.FeedUrl;
                podcast.SiteUrl     = dto.SiteUrl;

                var selectedTagIds = dto
                                     .Tags
                                     .Select(i => i.Id);
                await _context.Entry(podcast).Collection(p => p.Tags).LoadAsync();

                var newTags = _context
                              .Tags
                              .Where(t => selectedTagIds.Contains(t.TagId))
                              .ToList();
                podcast.Tags = newTags;
            }

            await _context.SaveChangesAsync();
        }
        public async Task <ActionResult <PodcastDto> > UpdatePodcast(int id, [FromBody] PodcastDto podcast)
        {
            if (id != podcast.Id)
            {
                return(BadRequest());
            }
            if (!PodcastLogic.PodcastExists(id))
            {
                return(NotFound());
            }
            PodcastDto returnPodcast = await PodcastLogic.UpdatePodcastAsync(podcast);

            return(Ok(returnPodcast));
        }
Example #5
0
            public async Task SavePodcastForReview(PodcastDto dto)
            {
                var podcast = new DataLayer.Models.Podcast
                {
                    Title       = dto.Title,
                    Description = dto.Description,
                    ImageUrl    = dto.ImageUrl,
                    FeedUrl     = dto.FeedUrl,
                    SiteUrl     = dto.SiteUrl
                };

                _context.Podcasts.Add(podcast);
                await _context.SaveChangesAsync();
            }
Example #6
0
        public async Task Add(PodcastDto dto)
        {
            var podcast = new Podcast
            {
                Title       = dto.Title,
                Description = dto.Description,
                ImageUrl    = dto.ImageUrl,
                FeedUrl     = dto.FeedUrl,
                SiteUrl     = dto.SiteUrl,
                DateCreated = DateTime.Now
            };

            _context.Podcasts.Add(podcast);
            await _context.SaveChangesAsync();
        }
 public IActionResult MostrarEntradaPodcast(string slug, bool estado)
 {
     try
     {
         PodcastDto result = this.podcastService.MostrarEntradaPodcast(slug, estado);
         return(StatusCode((int)System.Net.HttpStatusCode.OK, result));
     }
     catch (NegocioExecption e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.NotFound, e.Message));
     }
     catch (Exception e)
     {
         return(StatusCode((int)System.Net.HttpStatusCode.InternalServerError, e.Message));
     }
 }
Example #8
0
        public async Task UpdatePodcast(EditPodcastViewModel model)
        {
            var selectedTags = model
                               .Tags
                               .Where(i => i.IsChecked)
                               .Select(i => new TagDto
            {
                Id = i.Id,
            });

            var dto = new PodcastDto
            {
                Id          = model.Id,
                Title       = model.Title,
                Description = model.Description,
                ImageUrl    = model.ImageUrl,
                FeedUrl     = model.FeedUrl,
                SiteUrl     = model.SiteUrl,
                Tags        = selectedTags
            };
            await _podcastRepository.UpdatePodcast(dto);
        }
Example #9
0
 /// <summary>
 /// Muestra el podcast detalle
 /// </summary>
 /// <param name="slug"></param>
 /// <param name="estado"></param>
 /// <returns></returns>
 public PodcastDto MostrarEntradaPodcast(string slug, bool estado)
 {
     try
     {
         Blogs blog = this.repository.ObtenerSlug(slug);
         if (blog is null)
         {
             throw new NegocioExecption("No existe el slug", 404);
         }
         BlogDetalleDto blogDto    = this.repository.MostrarEntradaPorSlug(slug, estado);
         PodcastDto     podcastDto = mapper.Map <PodcastDto>(blogDto);
         return(podcastDto);
     }
     catch (NegocioExecption)
     {
         throw;
     }
     catch (Exception)
     {
         throw;
     }
 }