public async Task <IActionResult> AddVideoToPlaylist(VideoPlaylistItemModel videoPlaylistItemModel,
                                                             CancellationToken cancellationToken)
        {
            _ = await VideoPlaylistService.AddVideoToPlaylistAsync(videoPlaylistItemModel, cancellationToken);

            return(Ok());
        }
Пример #2
0
        public async Task <VideoPlaylistItem> AddVideoToPlaylistAsync(VideoPlaylistItemModel videoPlaylistItemModel,
                                                                      CancellationToken cancellationToken)
        {
            var videoEntity = await FairplaytubeDatabaseContext.VideoInfo
                              .SingleOrDefaultAsync(p => p.VideoId == videoPlaylistItemModel.VideoId, cancellationToken : cancellationToken);

            var videoplaylistEntity = await this.FairplaytubeDatabaseContext.VideoPlaylist
                                      .Include(p => p.OwnerApplicationUser)
                                      .SingleOrDefaultAsync(p => p.VideoPlaylistId ==
                                                            videoPlaylistItemModel.VideoPlaylistId, cancellationToken: cancellationToken);

            var userobjectId = this.CurrentUserProvider.GetObjectId();

            if (userobjectId != videoplaylistEntity.OwnerApplicationUser.AzureAdB2cobjectId.ToString())
            {
                throw new CustomValidationException("Access denied. User does not own the specified videoplaylist");
            }
            var videoPlayListItemEntity = new VideoPlaylistItem()
            {
                VideoPlaylistId = videoPlaylistItemModel.VideoPlaylistId,
                VideoInfoId     = videoEntity.VideoInfoId,
                Order           = videoPlaylistItemModel.Order
            };

            await this.FairplaytubeDatabaseContext.VideoPlaylistItem.AddAsync(videoPlayListItemEntity, cancellationToken);

            await this.FairplaytubeDatabaseContext.SaveChangesAsync(cancellationToken);

            return(videoPlayListItemEntity);
        }
        public async Task AddVideoToPlaylistAsync(VideoPlaylistItemModel videoPlaylistItemModel)
        {
            var authorizedHttpClient = this.HttpClientService.CreateAuthorizedClient();
            var response             = await authorizedHttpClient
                                       .PostAsJsonAsync(ApiRoutes.VideoPlaylistController.AddVideoToPlaylist,
                                                        videoPlaylistItemModel);

            if (!response.IsSuccessStatusCode)
            {
                ProblemHttpResponse problemHttpResponse = await response.Content.ReadFromJsonAsync <ProblemHttpResponse>();

                if (problemHttpResponse != null)
                {
                    throw new CustomValidationException(problemHttpResponse.Detail);
                }
                else
                {
                    throw new CustomValidationException(response.ReasonPhrase);
                }
            }
        }