private void ReportUpdateProgress(DownloadProgress progress) { if (progress.Percentage == 1) { progressBox.finished = true; } progressBox.progressBar.Value = progress.Percentage * 100; progressBox.taskBarItem.ProgressValue = progress.Percentage; progressBox.progressTitle.Text = $"Downloading {progress.FileName}..."; progressBox.progressText.Text = $"{Math.Round(progress.Percentage * 100, 2)}% " + $"({StringConverters.FormatSize(progress.DownloadedBytes)} of {StringConverters.FormatSize(progress.TotalBytes)})"; }
private void Refresh() { // Add new folders found in Mods to the ModList foreach (var mod in Directory.GetDirectories($@"{assemblyLocation}/Mods")) { if (ModList.ToList().Where(x => x.name == Path.GetFileName(mod)).Count() == 0) { logger.WriteLine($"Adding {Path.GetFileName(mod)}", LoggerType.Info); Mod m = new Mod(); m.name = Path.GetFileName(mod); App.Current.Dispatcher.Invoke((Action) delegate { ModList.Add(m); }); } } // Remove deleted folders that are still in the ModList foreach (var mod in ModList.ToList()) { if (!Directory.GetDirectories($@"{assemblyLocation}/Mods").ToList().Select(x => Path.GetFileName(x)).Contains(mod.name)) { App.Current.Dispatcher.Invoke((Action) delegate { ModList.Remove(mod); }); logger.WriteLine($"{mod.name} was deleted.", LoggerType.Info); } } // Move all enabled mods to top ModList = new ObservableCollection <Mod>(ModList.ToList().OrderByDescending(x => x.enabled).ToList()); App.Current.Dispatcher.Invoke((Action) delegate { ModGrid.ItemsSource = ModList; Stats.Text = $"{ModList.Count} mods • {Directory.GetFiles($@"{assemblyLocation}/Mods", "*", SearchOption.AllDirectories).Length.ToString("N0")} files • " + $"{StringConverters.FormatSize(new DirectoryInfo($@"{assemblyLocation}/Mods").GetDirectorySize())} • v{version}"; }); config.ModList = ModList; logger.WriteLine("Refreshed!", LoggerType.Info); }