示例#1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Repository"/> class.
        /// </summary>
        /// <param name="libGitRepo">The value of <see cref="libGitRepo"/>.</param>
        /// <param name="commands">The value of <see cref="commands"/>.</param>
        /// <param name="ioMananger">The value of <see cref="ioMananger"/>.</param>
        /// <param name="eventConsumer">The value of <see cref="eventConsumer"/>.</param>
        /// <param name="credentialsProvider">The value of <see cref="credentialsProvider"/>.</param>
        /// <param name="gitRemoteFeaturesFactory">The <see cref="IGitRemoteFeaturesFactory"/> to provide the value of <see cref="gitRemoteFeatures"/>.</param>
        /// <param name="logger">The value of <see cref="logger"/>.</param>
        /// <param name="onDispose">The value if <see cref="onDispose"/>.</param>
        public Repository(
            LibGit2Sharp.IRepository libGitRepo,
            ILibGit2Commands commands,
            IIOManager ioMananger,
            IEventConsumer eventConsumer,
            ICredentialsProvider credentialsProvider,
            IGitRemoteFeaturesFactory gitRemoteFeaturesFactory,
            ILogger <Repository> logger,
            Action onDispose)
        {
            this.libGitRepo          = libGitRepo ?? throw new ArgumentNullException(nameof(libGitRepo));
            this.commands            = commands ?? throw new ArgumentNullException(nameof(commands));
            this.ioMananger          = ioMananger ?? throw new ArgumentNullException(nameof(ioMananger));
            this.eventConsumer       = eventConsumer ?? throw new ArgumentNullException(nameof(eventConsumer));
            this.credentialsProvider = credentialsProvider ?? throw new ArgumentNullException(nameof(credentialsProvider));
            if (gitRemoteFeaturesFactory == null)
            {
                throw new ArgumentNullException(nameof(gitRemoteFeaturesFactory));
            }

            this.logger    = logger ?? throw new ArgumentNullException(nameof(logger));
            this.onDispose = onDispose ?? throw new ArgumentNullException(nameof(onDispose));

            gitRemoteFeatures = gitRemoteFeaturesFactory.CreateGitRemoteFeatures(this);
        }
        /// <summary>
        /// Construct a <see cref="Repository"/>
        /// </summary>
        /// <param name="libGitRepo">The value of <see cref="libGitRepo"/></param>
        /// <param name="commands">The value of <see cref="commands"/>.</param>
        /// <param name="ioMananger">The value of <see cref="ioMananger"/></param>
        /// <param name="eventConsumer">The value of <see cref="eventConsumer"/></param>
        /// <param name="credentialsProvider">The value of <see cref="credentialsProvider"/></param>
        /// <param name="logger">The value of <see cref="logger"/></param>
        /// <param name="onDispose">The value if <see cref="onDispose"/></param>
        public Repository(
            LibGit2Sharp.IRepository libGitRepo,
            ILibGit2Commands commands,
            IIOManager ioMananger,
            IEventConsumer eventConsumer,
            ICredentialsProvider credentialsProvider,
            ILogger <Repository> logger,
            Action onDispose)
        {
            this.libGitRepo          = libGitRepo ?? throw new ArgumentNullException(nameof(libGitRepo));
            this.commands            = commands ?? throw new ArgumentNullException(nameof(commands));
            this.ioMananger          = ioMananger ?? throw new ArgumentNullException(nameof(ioMananger));
            this.eventConsumer       = eventConsumer ?? throw new ArgumentNullException(nameof(eventConsumer));
            this.credentialsProvider = credentialsProvider ?? throw new ArgumentNullException(nameof(credentialsProvider));
            this.logger    = logger ?? throw new ArgumentNullException(nameof(logger));
            this.onDispose = onDispose ?? throw new ArgumentNullException(nameof(onDispose));

            IsGitHubRepository = Origin.Contains(GitHubUrl, StringComparison.InvariantCultureIgnoreCase);

            if (IsGitHubRepository)
            {
                GetRepositoryOwnerName(Origin, out var owner, out var name);
                GitHubOwner    = owner;
                GitHubRepoName = name;
            }
        }
示例#3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="InstanceFactory"/> class.
 /// </summary>
 /// <param name="ioManager">The value of <see cref="ioManager"/>.</param>
 /// <param name="databaseContextFactory">The value of <see cref="databaseContextFactory"/>.</param>
 /// <param name="assemblyInformationProvider">The value of <see cref="assemblyInformationProvider"/>.</param>
 /// <param name="loggerFactory">The value of <see cref="loggerFactory"/>.</param>
 /// <param name="topicClientFactory">The value of <see cref="topicClientFactory"/>.</param>
 /// <param name="cryptographySuite">The value of <see cref="cryptographySuite"/>.</param>
 /// <param name="synchronousIOManager">The value of <see cref="synchronousIOManager"/>.</param>
 /// <param name="symlinkFactory">The value of <see cref="symlinkFactory"/>.</param>
 /// <param name="byondInstaller">The value of <see cref="byondInstaller"/>.</param>
 /// <param name="chatFactory">The value of <see cref="chatFactory"/>.</param>
 /// <param name="processExecutor">The value of <see cref="processExecutor"/>.</param>
 /// <param name="postWriteHandler">The value of <see cref="postWriteHandler"/>.</param>
 /// <param name="watchdogFactory">The value of <see cref="watchdogFactory"/>.</param>
 /// <param name="jobManager">The value of <see cref="jobManager"/>.</param>
 /// <param name="networkPromptReaper">The value of <see cref="networkPromptReaper"/>.</param>
 /// <param name="platformIdentifier">The value of <see cref="platformIdentifier"/>.</param>
 /// <param name="repositoryFactory">The value of <see cref="repositoryFactory"/>.</param>
 /// <param name="repositoryCommands">The value of <see cref="repositoryCommands"/>.</param>
 /// <param name="serverPortProvider">The value of <see cref="serverPortProvider"/>.</param>
 /// <param name="fileTransferService">The value of <see cref="fileTransferService"/>.</param>
 /// <param name="gitRemoteFeaturesFactory">The value of <see cref="gitRemoteFeaturesFactory"/>.</param>
 /// <param name="remoteDeploymentManagerFactory">The value of <see cref="remoteDeploymentManagerFactory"/>.</param>
 /// <param name="generalConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing the value of <see cref="generalConfiguration"/>.</param>
 public InstanceFactory(
     IIOManager ioManager,
     IDatabaseContextFactory databaseContextFactory,
     IAssemblyInformationProvider assemblyInformationProvider,
     ILoggerFactory loggerFactory,
     ITopicClientFactory topicClientFactory,
     ICryptographySuite cryptographySuite,
     ISynchronousIOManager synchronousIOManager,
     ISymlinkFactory symlinkFactory,
     IByondInstaller byondInstaller,
     IChatManagerFactory chatFactory,
     IProcessExecutor processExecutor,
     IPostWriteHandler postWriteHandler,
     IWatchdogFactory watchdogFactory,
     IJobManager jobManager,
     INetworkPromptReaper networkPromptReaper,
     IPlatformIdentifier platformIdentifier,
     ILibGit2RepositoryFactory repositoryFactory,
     ILibGit2Commands repositoryCommands,
     IServerPortProvider serverPortProvider,
     IFileTransferTicketProvider fileTransferService,
     IGitRemoteFeaturesFactory gitRemoteFeaturesFactory,
     IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory,
     IOptions <GeneralConfiguration> generalConfigurationOptions)
 {
     this.ioManager = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
     this.databaseContextFactory      = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
     this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
     this.loggerFactory                  = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
     this.topicClientFactory             = topicClientFactory ?? throw new ArgumentNullException(nameof(topicClientFactory));
     this.cryptographySuite              = cryptographySuite ?? throw new ArgumentNullException(nameof(cryptographySuite));
     this.synchronousIOManager           = synchronousIOManager ?? throw new ArgumentNullException(nameof(synchronousIOManager));
     this.symlinkFactory                 = symlinkFactory ?? throw new ArgumentNullException(nameof(symlinkFactory));
     this.byondInstaller                 = byondInstaller ?? throw new ArgumentNullException(nameof(byondInstaller));
     this.chatFactory                    = chatFactory ?? throw new ArgumentNullException(nameof(chatFactory));
     this.processExecutor                = processExecutor ?? throw new ArgumentNullException(nameof(processExecutor));
     this.postWriteHandler               = postWriteHandler ?? throw new ArgumentNullException(nameof(postWriteHandler));
     this.watchdogFactory                = watchdogFactory ?? throw new ArgumentNullException(nameof(watchdogFactory));
     this.jobManager                     = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
     this.networkPromptReaper            = networkPromptReaper ?? throw new ArgumentNullException(nameof(networkPromptReaper));
     this.platformIdentifier             = platformIdentifier ?? throw new ArgumentNullException(nameof(platformIdentifier));
     this.repositoryFactory              = repositoryFactory ?? throw new ArgumentNullException(nameof(repositoryFactory));
     this.repositoryCommands             = repositoryCommands ?? throw new ArgumentNullException(nameof(repositoryCommands));
     this.serverPortProvider             = serverPortProvider ?? throw new ArgumentNullException(nameof(serverPortProvider));
     this.fileTransferService            = fileTransferService ?? throw new ArgumentNullException(nameof(fileTransferService));
     this.gitRemoteFeaturesFactory       = gitRemoteFeaturesFactory ?? throw new ArgumentNullException(nameof(gitRemoteFeaturesFactory));
     this.remoteDeploymentManagerFactory = remoteDeploymentManagerFactory ?? throw new ArgumentNullException(nameof(remoteDeploymentManagerFactory));
     generalConfiguration                = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
 }
示例#4
0
 /// <summary>
 /// Construct a <see cref="RepositoryManager"/>
 /// </summary>
 /// <param name="repositoryFactory">The value of <see cref="repositoryFactory"/>.</param>
 /// <param name="commands">The value of <see cref="commands"/>.</param>
 /// <param name="ioManager">The value of <see cref="ioManager"/></param>
 /// <param name="eventConsumer">The value of <see cref="eventConsumer"/></param>
 /// <param name="repositoryLogger">The value of <see cref="repositoryLogger"/></param>
 /// <param name="logger">The value of <see cref="logger"/></param>
 public RepositoryManager(
     ILibGit2RepositoryFactory repositoryFactory,
     ILibGit2Commands commands,
     IIOManager ioManager,
     IEventConsumer eventConsumer,
     ILogger <Repository> repositoryLogger,
     ILogger <RepositoryManager> logger)
 {
     this.repositoryFactory = repositoryFactory ?? throw new ArgumentNullException(nameof(repositoryFactory));
     this.commands          = commands ?? throw new ArgumentNullException(nameof(commands));
     this.ioManager         = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
     this.eventConsumer     = eventConsumer ?? throw new ArgumentNullException(nameof(eventConsumer));
     this.repositoryLogger  = repositoryLogger ?? throw new ArgumentNullException(nameof(repositoryLogger));
     this.logger            = logger ?? throw new ArgumentNullException(nameof(logger));
     semaphore = new SemaphoreSlim(1);
 }