/// <summary>
    /// Applies an individual application item to a given application configuration.
    /// </summary>
    /// <param name="indexApp">Index entry for the application.</param>
    /// <param name="pathTuple">The mod to apply the config to.</param>
    /// <param name="hash">Hash of the application's main executable.</param>
    public static void ApplyIndexEntry(AppItem indexApp, PathTuple <ApplicationConfig> pathTuple, string hash)
    {
        var hashMatches = hash.Equals(indexApp.Hash, StringComparison.OrdinalIgnoreCase);

        if (indexApp.AppStatus == Status.WrongExecutable && hashMatches)
        {
            Actions.DisplayMessagebox(Resources.AddAppRepoBadExecutable.Get(), indexApp.BadStatusDescription !);
        }

        pathTuple.Config.AppName = indexApp.AppName;
        // Apply GB Configurations
        Singleton <GameBananaPackageProviderFactory> .Instance.SetConfiguration(pathTuple,
                                                                                new GameBananaPackageProviderFactory.GameBananaProviderConfig()
        {
            GameId = (int)indexApp.GameBananaId
        });

        if (!hashMatches)
        {
            var viewModel = new AddAppHashMismatchDialogViewModel(indexApp.BadHashDescription !);
            Actions.ShowAddAppHashMismatchDialog(viewModel);
        }

        var appLocation = ApplicationConfig.GetAbsoluteAppLocation(pathTuple);

        if (indexApp.TryGetError(Path.GetDirectoryName(appLocation) !, out var errors))
        {
            var viewModel = new AddApplicationWarningDialogViewModel(errors);
            Actions.ShowApplicationWarningDialog(viewModel);
        }
    }
Пример #2
0
 private static bool ShowApplicationWarningDialog(AddApplicationWarningDialogViewModel viewmodel) => ShowDialogAndGetResult(new ShowApplicationWarningDialog(viewmodel));
 public ShowApplicationWarningDialog(AddApplicationWarningDialogViewModel viewmodel)
 {
     InitializeComponent();
     ViewModel = viewmodel;
 }