Esempio n. 1
0
        public async Task <IActionResult> AssignOrRemoveVideo([FromBody] PlaylistVideoRequest model)
        {
            var result = await _playlistsService.AssignOrRemoveVideoFromPlaylistAsync(model);

            if (result.IsSuccess)
            {
                return(Ok(result));
            }

            return(BadRequest(result));
        }
Esempio n. 2
0
        public async Task <OperationResponse <VideoDetail> > AssignOrRemoveVideoFromPlaylistAsync(PlaylistVideoRequest request)
        {
            var video = await _unitOfWork.Videos.GetByIdAsync(request.VideoId);

            if (video == null)
            {
                return new OperationResponse <VideoDetail> {
                           IsSuccess = false, Message = "Playlist video request. Video cannot be found"
                }
            }
            ;

            var playlist = await _unitOfWork.Playlists.GetByIdAsync(request.PlaylistId);

            if (playlist == null)
            {
                return new OperationResponse <VideoDetail> {
                           IsSuccess = false, Message = "Playlist video request. Playlist cannot be found"
                }
            }
            ;

            //var playlistVideos = _unitOfWork.Playlists.GetAllVideosInPlaylist(request.PlaylistId);
            var playlistVideo = playlist.PlaylistVideos.SingleOrDefault(pv => pv.VideoID == request.VideoId);

            string message = string.Empty;

            if (playlistVideo != null)
            {
                //remove

                _unitOfWork.Playlists.RemoveVideoFromPlaylist(playlistVideo);


                message = "Video has been removed from the playlist";
            }
            else
            {
                //add
                await _unitOfWork.Playlists.AddVideoToPlaylistAsync(new PlaylistVideo
                {
                    Playlist = playlist,
                    Video    = video
                });

                await _unitOfWork.CommitChangesAsync(_identity.UserID);

                message = "Video has been ADDED to the playlist";
            }

            await _unitOfWork.CommitChangesAsync(_identity.UserID);

            return(new OperationResponse <VideoDetail>
            {
                IsSuccess = true,
                Message = message
            });
        }