Beispiel #1
0
 public CheckIfKeeping(
     IFileSystem fileSystem,
     ILogger logger,
     ICheckIfRepositoryDesirable checkIfRepositoryDesirable,
     IProvideRepositoryCheckouts repoCheckouts)
 {
     _fileSystem           = fileSystem;
     _logger               = logger;
     IfRepositoryDesirable = checkIfRepositoryDesirable;
     RepoCheckouts         = repoCheckouts;
 }
Beispiel #2
0
 public PrintShaIfApplicable(
     ILogger logger,
     ICheckLocalRepoIsValid localRepoIsValid,
     IProvideRepositoryCheckouts repositoryCheckouts,
     IPathToRepositoryProvider pathToRepositoryProvider)
 {
     _logger                  = logger;
     LocalRepoIsValid         = localRepoIsValid;
     RepositoryCheckouts      = repositoryCheckouts;
     PathToRepositoryProvider = pathToRepositoryProvider;
 }
Beispiel #3
0
 public PrepRegistryRepository(
     ICheckOrCloneRepo checkOrClone,
     IRemoteRegistryUrlProvider registryUrlProvider,
     IProvideRepositoryCheckouts repositoryCheckouts,
     IResetToLatestMain resetToLatestMain,
     IRegistryFolderProvider registryFolderProvider)
 {
     ResetToLatestMain      = resetToLatestMain;
     RegistryUrlProvider    = registryUrlProvider;
     CheckOrClone           = checkOrClone;
     RepositoryCheckouts    = repositoryCheckouts;
     RegistryFolderProvider = registryFolderProvider;
 }
Beispiel #4
0
 public BackupSettings(
     IFileSystem fileSystem,
     IInitRepository initRepository,
     IProvideRepositoryCheckouts repositoryCheckouts,
     IGuiSettingsPath guiPaths,
     IPipelineSettingsPath paths)
 {
     _fileSystem          = fileSystem;
     _initRepository      = initRepository;
     _repositoryCheckouts = repositoryCheckouts;
     _guiPaths            = guiPaths;
     _paths = paths;
 }
 public PrepareDriverRespository(
     ILogger logger,
     ICheckOrCloneRepo checkOrClone,
     IResetToLatestMain resetToLatestMain,
     IProvideRepositoryCheckouts repoCheckouts,
     IGetDriverPaths getDriverPaths,
     IRetrieveRepoVersioningPoints retrieveRepoVersioningPoints,
     IDriverRepoDirectoryProvider driverRepoDirectoryProvider)
 {
     _logger                      = logger;
     CheckOrClone                 = checkOrClone;
     ResetToLatestMain            = resetToLatestMain;
     RepoCheckouts                = repoCheckouts;
     GetDriverPaths               = getDriverPaths;
     RetrieveRepoVersioningPoints = retrieveRepoVersioningPoints;
     DriverRepoDirectoryProvider  = driverRepoDirectoryProvider;
 }
Beispiel #6
0
 public PrepareRunnerRepository(
     ILogger logger,
     ISolutionFileLocator solutionFileLocator,
     IRunnerRepoProjectPathRetriever runnerRepoProjectPathRetriever,
     IModifyRunnerProjects modifyRunnerProjects,
     IResetToTarget resetToTarget,
     IBuildMetaFilePathProvider metaFilePathProvider,
     IRunnerRepoDirectoryProvider runnerRepoDirectoryProvider,
     IProvideRepositoryCheckouts repoCheckouts)
 {
     _logger = logger;
     _metaFilePathProvider          = metaFilePathProvider;
     ResetToTarget                  = resetToTarget;
     SolutionFileLocator            = solutionFileLocator;
     RunnerRepoProjectPathRetriever = runnerRepoProjectPathRetriever;
     ModifyRunnerProjects           = modifyRunnerProjects;
     RunnerRepoDirectoryProvider    = runnerRepoDirectoryProvider;
     RepoCheckouts                  = repoCheckouts;
 }
Beispiel #7
0
        public PatcherUserSettingsVm(
            ILogger logger,
            IProfileLoadOrder loadOrder,
            IProfileSimpleLinkCacheVm linkCacheVm,
            IObservable <Inputs> source,
            bool needBuild,
            IInitRepository initRepository,
            IProvideAutogeneratedSettings autoGenSettingsProvider,
            IProvideRepositoryCheckouts repoCheckouts,
            IGetSettingsStyle getSettingsStyle,
            IExecuteOpenForSettings executeOpenForSettings,
            IOpenSettingsHost openSettingsHost)
        {
            _logger                = logger;
            _initRepository        = initRepository;
            _repoCheckouts         = repoCheckouts;
            _settingsConfiguration = source
                                     .Select(i =>
            {
                return(Observable.Create <SettingsConfiguration>(async(observer, cancel) =>
                {
                    observer.OnNext(new SettingsConfiguration(SettingsStyle.None, Array.Empty <ReflectionSettingsConfig
                                                                                               >()));
                    if (i.ProjPath.Failed)
                    {
                        return;
                    }

                    try
                    {
                        var result = await getSettingsStyle.Get(
                            i.ProjPath.Value,
                            directExe: false,
                            cancel: cancel,
                            buildMetaPath: i.MetaPath,
                            build: needBuild).ConfigureAwait(false);
                        logger.Information($"Settings type: {result}");
                        observer.OnNext(result);
                    }
                    catch (Exception ex)
                    {
                        logger.Error($"Error checking if patcher can open settings: {ex}");
                    }
                    observer.OnCompleted();
                }));
            })
                                     .Switch()
                                     .ToGuiProperty(this, nameof(SettingsConfiguration), new SettingsConfiguration(SettingsStyle.None, Array.Empty <ReflectionSettingsConfig>()), deferSubscription: true);

            OpenSettingsCommand = NoggogCommand.CreateFromObject(
                objectSource: Observable.CombineLatest(
                    source.Select(x => x.ProjPath),
                    this.WhenAnyValue(x => x.SettingsConfiguration),
                    (Proj, Conf) => (Proj, Conf)),
                canExecute: x => x.Proj.Succeeded &&
                (x.Conf.Style == SettingsStyle.Open || x.Conf.Style == SettingsStyle.Host),
                execute: async(o) =>
            {
                if (o.Conf.Style == SettingsStyle.Open)
                {
                    await executeOpenForSettings.Open(
                        o.Proj.Value,
                        directExe: false,
                        cancel: CancellationToken.None,
                        loadOrder: loadOrder.LoadOrder.Items.Select <ReadOnlyModListingVM, IModListingGetter>(lvm => lvm)).ConfigureAwait(false);
                }
                else
                {
                    await openSettingsHost.Open(
                        path: o.Proj.Value,
                        cancel: CancellationToken.None,
                        loadOrder: loadOrder.LoadOrder.Items.Select <ReadOnlyModListingVM, IModListingGetter>(lvm => lvm)).ConfigureAwait(false);
                }
            },
                disposable: this);

            _settingsOpen = OpenSettingsCommand.IsExecuting
                            .ToGuiProperty(this, nameof(SettingsOpen), deferSubscription: true);

            _reflectionSettings = Observable.CombineLatest(
                this.WhenAnyValue(x => x.SettingsConfiguration),
                source.Select(x => x.ProjPath),
                (SettingsConfig, ProjPath) => (SettingsConfig, ProjPath))
                                  .Select(x =>
            {
                if (x.ProjPath.Failed ||
                    x.SettingsConfig.Style != SettingsStyle.SpecifiedClass ||
                    x.SettingsConfig.Targets.Length == 0)
                {
                    return(default(AutogeneratedSettingsVm?));
                }
                return(autoGenSettingsProvider.Get(x.SettingsConfig,
                                                   projPath: x.ProjPath.Value,
                                                   loadOrder: loadOrder.LoadOrder.Connect().Transform <ReadOnlyModListingVM, IModListingGetter>(x => x),
                                                   linkCache: linkCacheVm.WhenAnyValue(x => x.SimpleLinkCache)));
            })
                                  .ToGuiProperty <AutogeneratedSettingsVm?>(this, nameof(ReflectionSettings), initialValue: null, deferSubscription: true);
        }