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