예제 #1
0
        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 }));
        }
예제 #2
0
        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));
        }