Esempio n. 1
0
        private async Task LoadPlaylist(string filename)
        {
            var config = new JobRunnerConfiguration <string, IEnumerable <string> >
            {
                JobDescription        = "Reading playlist file",
                JobTitle              = "Loading...",
                ReportTaskBarProgress = true,
                JobInput              = filename,
            };

            string ext = Path.GetExtension(filename);

            switch (ext)
            {
            case ".pls":
                config.Job = new LoadPLSJob();
                break;

            case ".m3u":
                config.Job = new LoadM3UJob();
                break;

            case ".wpl":
                config.Job = new LoadWPLJob();
                break;

            case ".asx":
                config.Job = new LoadASXJob();
                break;
            }
            try
            {
                var result = await JobRunner.RunJob(config);

                Application.Current.Dispatcher.Invoke(() =>
                {
                    _list.AddRange(result.Result);
                });
            }
            catch (Exception ex)
            {
                Helpers.ErrorDialog(ex, Properties.Resources.Error_FileLoad);
            }
        }
Esempio n. 2
0
        private async void Drive_Click(object sender, RoutedEventArgs e)
        {
            var menuitem = sender as MenuItem;
            var drive    = menuitem.Header.ToString();
            var type     = DriveType.Removable;

            Enum.TryParse(menuitem.Tag.ToString(), out type);

            var config = new JobRunnerConfiguration <string, IEnumerable <string> >
            {
                JobDescription        = "Searching Device for playable content",
                JobTitle              = "Loading...",
                ReportTaskBarProgress = true,
                JobInput              = drive,
            };

            try
            {
                JobResult <IEnumerable <string> > results;
                if (type == DriveType.CDRom)
                {
                    config.Job = new CDGetInfoJob();
                    results    = await JobRunner.RunJob(config);

                    if (results.Result.Any())
                    {
                        _list.AddRange(results.Result);
                    }
                }
                config.Job = new ImportFromMassStorageJob();
                results    = await JobRunner.RunJob(config);

                if (results.Result.Any())
                {
                    _list.AddRange(results.Result);
                }
            }
            catch (Exception ex)
            {
                Helpers.ErrorDialog(ex, Properties.Resources.Error_FileLoad);
            }
        }