Exemplo n.º 1
0
    public void Migrate_MigratesNuSpecIntoMainConfig()
    {
        // Arrange
        var mod            = _testEnvironmoent.TestModConfigATuple;
        var modDirectory   = Path.GetDirectoryName(mod.Path);
        var nuspecFilePath = Path.Combine(modDirectory !, $"{IOEx.ForceValidFilePath(mod.Config.ModId)}.nuspec");

        File.Create(nuspecFilePath).Dispose();

        // Act
        var factory = new NuGetUpdateResolverFactory();

        factory.Migrate(mod, null);
        using var disposalHelper = new RemoveConfiguration <NuGetUpdateResolverFactory.NuGetConfig>(mod, factory);

        // Assert
        Assert.False(File.Exists(nuspecFilePath));
        Assert.True(factory.TryGetConfigurationOrDefault(mod, out var config));
    }
    /// <summary/>
    public PublishModDialogViewModel(PathTuple <ModConfig> modTuple)
    {
        _modTuple    = modTuple;
        PackageName  = IOEx.ForceValidFilePath(_modTuple.Config.ModName.Replace(' ', '_'));
        OutputFolder = Path.Combine(Path.GetTempPath(), $"{IOEx.ForceValidFilePath(_modTuple.Config.ModId)}.Publish");

        // Set default Regexes.
        IgnoreRegexes = new ObservableCollection <StringWrapper>()
        {
            @".*\.json", // Config files
            $"{Regex.Escape($@"{_modTuple.Config.ModId}.nuspec")}"
        };

        IncludeRegexes = new ObservableCollection <StringWrapper>()
        {
            Regex.Escape(ModConfig.ConfigFileName),
            @"\.deps\.json",
            @"\.runtimeconfig\.json",
        };

        // Set notifications
        PropertyChanged += ChangeUiVisbilityOnPropertyChanged;
    }