private void OnRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) { StateChanged?.Invoke(this, new SongPickStateChangedEventArgs("Completed with error", e.Error)); } else { var result = (IEnumerable <Song>)e.Result; var songs = result.Select((x, i) => new PickedSong(i + 1, x)).ToImmutableArray(); var songPickStateChangedEventArgs = new SongPickStateChangedEventArgs($"Completed successfully playlist with {songs.Length} songs generated", songs); StateChanged?.Invoke(this, songPickStateChangedEventArgs); } }
private void OnSongPickWorkerStateChanged(object sender, SongPickStateChangedEventArgs e) { StateMessage = e.Message; if (e.Error != null) { ShowError($"Song pick process failed: {e.Error.Message}."); PickedSongs.Clear(); } else if (!e.IsProcessing) { PickedSongs = new ObservableCollection <PickedSong>(e.Result); } IsProcessing = e.IsProcessing; }