public IActionResult DeleteById([FromBody] PodcastToPlayListModel podcastToPlayListModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } string userId = User.FindFirstValue(ClaimTypes.NameIdentifier); string role = User.FindFirstValue(ClaimTypes.Role); if (podcastToPlayListModel.UserId.ToString() != userId && role != "Admin") { return(BadRequest("UserId is incorrect")); } User user = _repoWrapper.User .FindByCondition(u => u.Id == podcastToPlayListModel.UserId) .FirstOrDefault(); if (user == null) { return(BadRequest("Token is incorrect")); } PodcastToPlaylist podcastToPlaylist = _repoWrapper.PodcastToPlaylist .FindByCondition(p => p.PlaylistId == podcastToPlayListModel.PlaylistId && p.PodcastId == podcastToPlayListModel.PodcastId && p.UserId == podcastToPlayListModel.UserId) .FirstOrDefault(); if (podcastToPlaylist == null) { return(BadRequest("The podcast not exists in the playlist")); } _repoWrapper.PodcastToPlaylist.Delete(podcastToPlaylist); _repoWrapper.Save(); return(Ok(new { Success = true })); }
public IActionResult CreatePodcastToPlaylist([FromBody] PodcastToPlayListModel podcastToPlayListModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } string userId = User.FindFirstValue(ClaimTypes.NameIdentifier); string role = User.FindFirstValue(ClaimTypes.Role); User user = _repoWrapper.User.FindByCondition(u => u.Id.ToString() == userId).FirstOrDefault(); if (user == null) { return(BadRequest("Token is incorrect")); } if (user.Id != podcastToPlayListModel.UserId && role != "Admin") { return(BadRequest("UserId is incorrect")); } Playlist playlist = _repoWrapper.Playlist .FindByCondition(p => p.Id == podcastToPlayListModel.PlaylistId) .FirstOrDefault(); if (playlist == null) { return(NotFound("PlaylistId is incorrect")); } Podcast podcast = _repoWrapper.Podcast .FindByCondition(p => p.Id == podcastToPlayListModel.PodcastId) .FirstOrDefault(); if (podcast == null) { return(NotFound("PodcastId is incorrect")); } PodcastToPlaylist podcastToPlaylistCheck = _repoWrapper.PodcastToPlaylist .FindByCondition(p => p.PodcastId == podcastToPlayListModel.PodcastId && p.PlaylistId == podcastToPlayListModel.PlaylistId && p.UserId == podcastToPlayListModel.UserId) .FirstOrDefault(); if (podcastToPlaylistCheck != null) { return(BadRequest("The podcast already exists in the playlist")); } PodcastToPlaylist podcastToPlaylist = new PodcastToPlaylist() { PodcastId = podcastToPlayListModel.PodcastId, PlaylistId = podcastToPlayListModel.PlaylistId, PublicationDate = DateTime.Now, UserId = podcastToPlayListModel.UserId }; _repoWrapper.PodcastToPlaylist.Create(podcastToPlaylist); _repoWrapper.Save(); return(Ok(podcastToPlaylist)); }