Exemple #1
0
        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);
        }
Exemple #2
0
        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;
        }