Example #1
0
        public async Task <UpdateAlbumPayload> RemoveFoldersFromAlbumAsync(
            RemoveFoldersFromAlbumRequest input,
            CancellationToken cancellationToken)
        {
            Album album = await _albumService.RemoveFoldersAsync(input, cancellationToken);

            return(new UpdateAlbumPayload(album));
        }
Example #2
0
        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);
        }