public async Task <UpdateAlbumPayload> RemoveFoldersFromAlbumAsync( RemoveFoldersFromAlbumRequest input, CancellationToken cancellationToken) { Album album = await _albumService.RemoveFoldersAsync(input, cancellationToken); return(new UpdateAlbumPayload(album)); }
public async Task <Album> RemoveFoldersAsync(RemoveFoldersFromAlbumRequest request, CancellationToken cancellationToken) { Album album = await GetByIdAsync(request.AlbumId, cancellationToken); foreach (AlbumInclude include in album.Includes.Where(x => x.Type == AlbumIncludeType.Folder)) { var removed = include.Folders?.ToList(); removed?.RemoveAll(f => request.Folders.Contains(f)); include.Folders = removed; } await _mediaStore.Albums.UpdateAsync(album, cancellationToken); await _bus.Publish(new FoldersRemovedFromAlbum(album.Id, request.Folders)); return(album); }