public static void DownloadReleasesOld(int[] ids)
        {
            if (ids == null || ids.Length == 0)
            {
                return;
            }

            ProgressDialog progressDialog = new ProgressDialog {
                InfoText = "downloading releases"
            };

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

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

                    Task.WaitAll(release.videos.Select(v => Task.Run(() =>
                    {
                        MediaService.GetVideoFilePath(v.uri, out _, null);
                        MediaService.GetAudioFilePath(v.uri, out _);
                    })).ToArray());

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

            progressDialog.Show();
        }
Пример #2
0
        public static void DeleteFiles(Action <int> progressPercentageCallback = null)
        {
            try
            {
                string[] files = Directory.GetFiles(VideoFolder)
                                 .Concat(Directory.GetFiles(ImageFolder))
                                 .Concat(Directory.GetFiles(AudioFolder)).ToArray();

                for (int i = 0; i < files.Length; i++)
                {
                    try
                    {
                        File.Delete(files[i]);
                        progressPercentageCallback?.Invoke(ProgressHelper.GetProgressPercentage(i + 1, files.Length));
                    }
                    catch
                    {
                        //ignore
                    }
                }

                progressPercentageCallback?.Invoke(100);
            }
            catch
            {
                //ignore
            }
        }
Пример #3
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();
            }
        }
Пример #4
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();
        }
Пример #5
0
        private async Task RunProcessAsync()
        {
            string serverDirectory = Path.GetDirectoryName(_server.SRCDSPath);

            Directory.CreateDirectory(serverDirectory);

            _steamCMDProcess?.Dispose();
            _steamCMDProcess = new Process()
            {
                StartInfo = new ProcessStartInfo()
                {
                    FileName               = _server.SteamCMDPath,
                    Arguments              = @"+login anonymous +force_install_dir ..\Server +app_update 232250 +quit",
                    UseShellExecute        = false,
                    RedirectStandardOutput = true,
                    CreateNoWindow         = true
                },
                EnableRaisingEvents = true
            };
            _steamCMDProcess.Exited += OnProcessExited;
            _steamCMDProcess.Start();

            string line;

            while ((line = await _steamCMDProcess.StandardOutput.ReadLineAsync()) != null)
            {
                if (IsDisposed)
                {
                    break;
                }

                WriteMessage(line);
                _steamCMDParser.ParseLine(line);
                lblStatus.Text = "Status : " + _steamCMDParser.UpdateState;

                if (_steamCMDParser.Processed <= _steamCMDParser.Total)
                {
                    lblProgress.Text  = ProgressHelper.FormatProgressLine(_steamCMDParser.Processed, _steamCMDParser.Total);
                    prgProgress.Value = ProgressHelper.GetProgressPercentage(_steamCMDParser.Processed, _steamCMDParser.Total);
                }
            }
        }
Пример #6
0
 private void OnProgressChanged(object sender, EventArgs e)
 {
     lblProgress.Text  = ProgressHelper.FormatProgressLine(_downloader.BytesDownloaded, _downloader.ContentLength);
     prgProgress.Value = ProgressHelper.GetProgressPercentage(_downloader.BytesDownloaded, _downloader.ContentLength);
 }