/// <inheritdoc /> public ConfigureModsViewModel(ApplicationViewModel model, ModUserConfigService userConfigService) { ApplicationTuple = model.ApplicationTuple; _applicationViewModel = model; _userConfigService = userConfigService; _saveToken = new CancellationTokenSource(); // Wait for parent to fully initialize. _applicationViewModel.OnGetModsForThisApp += BuildModList; _applicationViewModel.OnLoadModSet += BuildModList; BuildModList(); SelectedMod = AllMods.FirstOrDefault(); PropertyChanged += OnSelectedModChanged; UpdateCommands(); }
public TestEnvironmoent() { // Backup config and override on filesystem with new. OriginalConfig = IConfig <LoaderConfig> .FromPathOrDefault(Paths.LoaderConfigPath); TestConfig = MakeTestConfig(); if (OriginalConfig.GetApplicationConfigDirectory() != TestConfig.GetApplicationConfigDirectory()) { IConfig <LoaderConfig> .ToPath(OriginalConfig, $"{Paths.LoaderConfigPath}.bak"); } IConfig <LoaderConfig> .ToPath(TestConfig, Paths.LoaderConfigPath); try { // Populate configurations. ModConfigurationTuples = ModConfig.GetAllMods().ToArray(); ModConfigurations = ModConfigurationTuples.Select(x => x.Config).ToArray(); AppConfigurations = ApplicationConfig.GetAllApplications().Select(x => x.Config).ToArray(); ThisApplication = new ApplicationConfig(IdOfThisApp, "Reloaded Mod Loader Tests", Environment.CurrentProcessLocation.Value, new[] { TestModConfigA.ModId, TestModConfigB.ModId, TestModConfigD.ModId }); ConfigurationPathOfThisApp = Path.Combine(TestConfig.GetApplicationConfigDirectory(), IdOfThisApp, ApplicationConfig.ConfigFileName); IConfig <ApplicationConfig> .ToPath(ThisApplication, ConfigurationPathOfThisApp); // Populate nonexisting dependencies. NonexistingDependencies.Add(TestModB.Program.NonexistingDependencyName); NonexistingDependencies.Add(TestModC.Program.NonexistingDependencyName); // Create user configs if necessary. ModConfigService = new ModConfigService(TestConfig); UserConfigService = new ModUserConfigService(TestConfig, ModConfigService); } catch (Exception) { IConfig <LoaderConfig> .ToPath(OriginalConfig, Paths.LoaderConfigPath); throw; } }
/// <inheritdoc /> public ApplicationViewModel(PathTuple <ApplicationConfig> tuple, ModConfigService modConfigService, ModUserConfigService modUserConfigService, LoaderConfig loaderConfig) { ApplicationTuple = tuple; _modConfigService = modConfigService; _modUserConfigService = modUserConfigService; _instanceTracker = new ApplicationInstanceTracker(ApplicationConfig.GetAbsoluteAppLocation(tuple), _initialiseTokenSrc.Token); if (_initialiseTokenSrc.IsCancellationRequested) { return; } MakeShortcutCommand = new MakeShortcutCommand(tuple, Lib.IconConverter); _modConfigService.Items.CollectionChanged += OnGetModifications; _instanceTracker.OnProcessesChanged += OnProcessesChanged; UpdateReloadedProcesses(); GetModsForThisApp(); _refreshProcessesWithLoaderTimer = new Timer(RefreshTimerCallback, null, 500, loaderConfig.ProcessRefreshInterval); }
/* Instantiation */ /// <summary/> /// <param name="mods">List of mods to be updated. Usually obtained from <see cref="ModConfigService"/>.</param> /// <param name="userConfigurations">List of user configurations. Usually obtained from <see cref="ModUserConfigService"/>.</param> /// <param name="data">Configuration for the updater.</param> public Updater(ModConfigService mods, ModUserConfigService userConfigurations, UpdaterData data) { _modConfigService = mods; _modUserConfigService = userConfigurations; _data = data; }