public async void RefreshModProjects() { if (MainAppData.ProgressActive) { return; } if (Data.CanClickRefresh) { Data.CanClickRefresh = false; await Task.Run(() => { DOS2Commands.RefreshManagedProjects(Data); Data.CanClickRefresh = true; }); } }
public void Start() { DOS2Commands.SetData(Data); LoadDataDirectory(); LoadDirectoryLayout(); InitModuleKeywords(); DOS2Commands.LoadAll(Data); Data.UpdateManageButtonsText(); if (saveModuleSettings) { FileCommands.Save.SaveModuleSettings(Data); saveModuleSettings = false; } #if DEBUG //TestView(); #endif }
public async void RefreshAllProjects() { if (MainAppData.ProgressActive) { return; } if (Data.CanClickRefresh) { Data.CanClickRefresh = false; await Task.Run(() => { DOS2Commands.LoadAll(Data); Data.CanClickRefresh = true; }); } else { //Log.Here().Activity("Currently refreshing."); } }
public void AddProjects(List <AvailableProjectViewData> selectedItems) { bool bSaveData = false; foreach (AvailableProjectViewData project in selectedItems) { Log.Here().Activity($"Adding project {project.Name} data to managed projects."); var modData = Data.ModProjects.Where(p => p.ProjectName == project.Name).FirstOrDefault(); if (modData != null) { //ManagedProjects.Add(new ProjectEntryData(modData.ProjectInfo, modData.ModInfo)); Data.ManagedProjects.Add(modData); var availableProject = Data.NewProjects.Where(p => p.Name == project.Name).FirstOrDefault(); if (availableProject != null) { Data.NewProjects.Remove(availableProject); } if (Data.ManagedProjectsData.SavedProjects.Items.Any(p => p.UUID == modData.UUID)) { if (modData.ProjectAppData == null) { ProjectAppData data = Data.ManagedProjectsData.SavedProjects.Items.Where(p => p.UUID == modData.ModuleInfo.UUID).FirstOrDefault(); if (data != null) { modData.ProjectAppData = data; Log.Here().Activity($"Linked project {modData.ProjectName} data to managed project data."); } } } else { ProjectAppData data = new ProjectAppData() { Name = modData.ProjectName, UUID = modData.ModuleInfo.UUID, LastBackupUTC = null }; Data.ManagedProjectsData.SavedProjects.AddOrUpdate(data); modData.ProjectAppData = data; Log.Here().Activity($"Added project {modData.DisplayName} to managed projects."); bSaveData = true; } } else { #if DEBUG Data.ManagedProjects.Add(ModProjectData.Test(project.Name)); #else MainWindow.FooterError($"Error adding project {project.Name} to managed projects: Mod data doesn't exist."); #endif } } Data.RaisePropertyChanged("NewProjects"); if (bSaveData) { if (DOS2Commands.SaveManagedProjects(Data)) { MainWindow.FooterLog("Saved Managed Projects data to {0}.", Data.Settings.AddedProjectsFile); } else { MainWindow.FooterError("Error saving Managed Projects data to {0}.", Data.Settings.AddedProjectsFile); } } }
private async Task <int> BackupSelectedProjectsAsync(ConcurrentBag <ModProjectData> selectedProjects) { AppController.Main.Data.ProgressValueMax = selectedProjects.Count * 2; int totalSuccess = 0; if (selectedProjects != null) { int i = 0; foreach (var project in selectedProjects) { AppController.Main.UpdateProgressTitle((selectedProjects.Count > 1 ? "Backing up projects..." : $"Backing up project... ") + $"{i}/{selectedProjects.Count}"); //Log.Here().Activity($"[Progress-Backup] Target percentage for this backup iteration is {targetPercentage} => {totalPercentageAmount}. Amount per tick is {amountPerTick}."); AppController.Main.UpdateProgressMessage($"Creating archive for project {project.ProjectName}..."); var backupSuccess = await BackupProjectAsync(project, targetBackupOutputDirectory, Data.Settings.BackupMode); if (backupSuccess == FileCreationTaskResult.Success) { totalSuccess += 1; Log.Here().Activity("Successfully created archive for {0}.", project.ProjectName); project.LastBackup = DateTime.Now; var d = Data.ManagedProjectsData.SavedProjects.Items.Where(p => p.UUID == project.UUID).FirstOrDefault(); if (d != null) { d.LastBackupUTC = project.LastBackup?.ToUniversalTime().ToString(); } AppController.Main.UpdateProgressLog("Archive created."); } else if (backupSuccess == FileCreationTaskResult.Error) { Log.Here().Error("Failed to create archive for {0}.", project.ProjectName); AppController.Main.UpdateProgressLog("Archive creation failed."); } else { totalSuccess += 1; Log.Here().Activity("Skipped archive creation for {0}.", project.ProjectName); } AppController.Main.UpdateProgress(1); AppController.Main.UpdateProgressTitle((selectedProjects.Count > 1 ? "Backing up projects..." : $"Backing up project... ") + $"{i + 1}/{selectedProjects.Count}"); i++; } } AppController.Main.UpdateProgressTitle((selectedProjects.Count > 1 ? "Backing up projects..." : $"Backing up project... ") + $"{selectedProjects.Count}/{selectedProjects.Count}"); AppController.Main.UpdateProgressMessage("Finishing up..."); AppController.Main.UpdateProgressLog("Backup quest complete. +5 XP"); AppController.Main.FinishProgress(); if (totalSuccess > 0) { DOS2Commands.SaveManagedProjects(this.Data); } return(totalSuccess); }