Пример #1
0
        public static void ExportReleasesOld(int[] ids)
        {
            if (ids == null || ids.Length == 0)
            {
                return;
            }

            using (FolderBrowserDialog dialog = new FolderBrowserDialog())
            {
                if (dialog.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                string folder = dialog.SelectedPath;

                ProgressDialog progressDialog = new ProgressDialog {
                    InfoText = $"exporting releases to {dialog.SelectedPath}"
                };

                Task.Run(() =>
                {
                    for (int i = 0; i < ids.Length; i++)
                    {
                        DiscogsRelease release = DiscogsService.GetRelease(ids[i]);
                        MediaService.ExportRelease(release, folder);
                        progressDialog?.SetProgress(ProgressHelper.GetProgressPercentage(i + 1, ids.Length));
                    }
                });

                progressDialog.Show();
            }
        }
Пример #2
0
        public static void ReleasesHelp(int[] ids, Help help)
        {
            string folder = null;

            if (help == Help.Export)
            {
                using (FolderBrowserDialog dialog = new FolderBrowserDialog())
                {
                    if (dialog.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }

                    folder = dialog.SelectedPath;
                }
            }

            ProgressDialog progressDialog = new ProgressDialog {
                InfoText = help.ToString()
            };

            Task.Run(() =>
            {
                for (int i = 0; i < ids.Length; i++)
                {
                    DiscogsRelease release = DiscogsService.GetRelease(ids[i]);

                    if (release.videos == null || release.videos.Length == 0)
                    {
                        continue;
                    }

                    switch (help)
                    {
                    case Help.Download:
                        Task.WaitAll(release.videos.Select(v => Task.Run(() =>
                        {
                            MediaService.GetVideoFilePath(v.uri, out _, null);
                            MediaService.GetAudioFilePath(v.uri, out _);
                        })).ToArray());
                        break;

                    case Help.Export:
                        MediaService.ExportRelease(release, folder);
                        break;

                    default:
                        return;
                    }

                    progressDialog?.SetProgress(ProgressHelper.GetProgressPercentage(i + 1, ids.Length));
                }
            });

            progressDialog.Show();
        }