Esempio n. 1
0
    /// <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);
    }
Esempio n. 4
0
    /* 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;
    }