public async Task <IActionResult> AddVideoToPlaylist(VideoPlaylistItemModel videoPlaylistItemModel, CancellationToken cancellationToken) { _ = await VideoPlaylistService.AddVideoToPlaylistAsync(videoPlaylistItemModel, cancellationToken); return(Ok()); }
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); } } }