private async Task <bool> AddTracksToPlaylist(IPlaylist playlist, IPlaylistResult result) { await Task.Delay(500); var controller = await _baseWindow.ShowProgressAsync(Application.Current.Resources["ImportTracks"].ToString(), string.Empty, true, new MetroDialogSettings { NegativeButtonText = Application.Current.Resources["Cancel"].ToString() }); result.LoadingTracksProcessChanged += (s, e) => { controller.SetMessage(string.Format(Application.Current.Resources["LoadingTracks"].ToString(), e.CurrentTrackName, e.Value, e.Maximum)); controller.SetProgress(e.Value / e.Maximum); }; var tracks = await result.GetTracks(controller); if (tracks == null) { await controller.CloseAsync(); return(false); } foreach (var track in tracks) { playlist.AddTrack(track); } _manager.SaveToSettings(); AnyListenSettings.Instance.Save(); AsyncTrackLoader.Instance.RunAsync(playlist); await controller.CloseAsync(); return(true); }
private async Task<bool> AddTracksToPlaylist(IPlaylist playlist, IPlaylistResult result) { await Task.Delay(500); var controller = await _baseWindow.ShowProgressAsync(Application.Current.Resources["ImportTracks"].ToString(), string.Empty, true, new MetroDialogSettings { NegativeButtonText = Application.Current.Resources["Cancel"].ToString() }); result.LoadingTracksProcessChanged += (s, e) => { controller.SetMessage(string.Format(Application.Current.Resources["LoadingTracks"].ToString(), e.CurrentTrackName, e.Value, e.Maximum)); controller.SetProgress(e.Value / e.Maximum); }; var tracks = await result.GetTracks(controller); if (tracks == null) { await controller.CloseAsync(); return false; } foreach (var track in tracks) { playlist.AddTrack(track); } _manager.SaveToSettings(); HurricaneSettings.Instance.Save(); AsyncTrackLoader.Instance.RunAsync(playlist); await controller.CloseAsync(); return true; }