public async Task <Domain.SmartPlaylist> GetSmartPlaylistAsync(Guid smartPlaylistId) { Domain.SmartPlaylist smartPlaylist = null; using (PerfLogger.Create("GetSmartPlaylistFromProvider", () => new { smartPlaylistName = smartPlaylist?.Name })) { smartPlaylist = await _decorated.GetSmartPlaylistAsync(smartPlaylistId).ConfigureAwait(false); return(smartPlaylist); } }
public async Task HandleAsync(UpdateSmartPlaylistCommand message) { var smartPlaylist = await _smartPlaylistProvider.GetSmartPlaylistAsync(message.SmartPlaylistId) .ConfigureAwait(false); var playlist = _playlistRepository.GetUserPlaylist(smartPlaylist.UserId, smartPlaylist.Name); var items = _userItemsProvider.GetItems(playlist.User, Const.SupportedItemTypeNames).ToArray(); BaseItem[] newItems; using (PerfLogger.Create("FilterPlaylistItems", () => new { playlistName = playlist.Name, itemsCount = items.Length })) { newItems = smartPlaylist.FilterPlaylistItems(playlist, items).ToArray(); } await _playlistItemsUpdater.UpdateAsync(playlist, newItems).ConfigureAwait(false); if (smartPlaylist.IsShuffleUpdateType) { smartPlaylist.UpdateLastShuffleTime(); _smartPlaylistStore.Save(smartPlaylist.ToDto()); } }