Пример #1
0
        /// <summary>Create <see cref="Repository"/>.</summary>
        /// <param name="gitAccessor">Git repository access provider.</param>
        /// <param name="workingDirectory">Repository working directory.</param>
        /// <param name="load"><c>true</c> to load repository; <c>false</c> otherwise.</param>
        private Repository(IGitAccessor gitAccessor, string workingDirectory, bool load)
        {
            Verify.Argument.IsNotNull(gitAccessor, nameof(gitAccessor));
            Verify.Argument.IsNotNull(workingDirectory, nameof(workingDirectory));

            _workingDirectory     = GetWorkingDirectory(workingDirectory);
            _gitDirectory         = GetGitDirectory(_workingDirectory);
            _configurationManager = GetConfigurationManager(_gitDirectory);

            _accessor      = gitAccessor.CreateRepositoryAccessor(this);
            _revisionCache = new RevisionCache(this);
            _configuration = new ConfigParametersCollection(this);
            _status        = new Status(this);
            _stash         = new StashedStatesCollection(this);
            _refs          = new RefsCollection(this);
            _notes         = new NotesCollection(this);
            _remotes       = new RemotesCollection(this);
            _submodules    = new SubmodulesCollection(this);
            _users         = new UsersCollection(this);
            _hooks         = new HooksCollection(this);

            if (load)
            {
                try
                {
                    LoadCore(this, null, CancellationToken.None);
                }
                catch
                {
                    Dispose();
                    throw;
                }
            }
        }
Пример #2
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="foreignKeyAccessor">The foreign key accessor responsible accessing the child information for the parent.</param>
 /// <param name="destinationRepositoryAccessor">The destination entity repository accessor.</param>
 public DelegatingHasManyResourceEnricher(
     IHasManyResourceAccessor <TSource, TDestination> foreignKeyAccessor,
     IRepositoryAccessor <TDestinationEntity> destinationRepositoryAccessor)
 {
     _foreignKeyAccessor            = foreignKeyAccessor;
     _destinationRepositoryAccessor = destinationRepositoryAccessor;
 }
Пример #3
0
        /// <summary>Create <see cref="Repository"/>.</summary>
        /// <param name="gitAccessor">Git repository access provider.</param>
        /// <param name="workingDirectory">Repository working directory.</param>
        /// <param name="load"><c>true</c> to load repository; <c>false</c> otherwise.</param>
        private Repository(IGitAccessor gitAccessor, string workingDirectory, bool load)
        {
            Verify.Argument.IsNotNull(gitAccessor, "gitAccessor");
            Verify.Argument.IsNotNull(workingDirectory, "workingDirectory");

            _workingDirectory     = GetWorkingDirectory(workingDirectory);
            _gitDirectory         = GetGitDirectory(_workingDirectory);
            _configurationManager = GetConfigurationManager(_gitDirectory);

            _accessor      = gitAccessor.CreateRepositoryAccessor(this);
            _revisionCache = new RevisionCache(this);
            _configuration = new ConfigParametersCollection(this);
            _status        = new Status(this);
            _stash         = new StashedStatesCollection(this);
            _refs          = new RefsCollection(this);
            _notes         = new NotesCollection(this);
            _remotes       = new RemotesCollection(this);
            _submodules    = new SubmodulesCollection(this);
            _users         = new UsersCollection(this);
            _hooks         = new HooksCollection(this);

            if(load)
            {
                try
                {
                    LoadCore(this, null, CancellationToken.None);
                }
                catch
                {
                    Dispose();
                    throw;
                }
            }
        }
        /// <summary>
        /// 获取指定类型的IRepository,不存在抛出InvalidOperationException异常
        /// </summary>
        public static TRepository GetRequiredRepository <TRepository>(this IRepositoryAccessor dataAccessor) where TRepository : IRepository
        {
            var repo = dataAccessor.GetRepository <TRepository>();

            if (repo == null)
            {
                throw new InvalidOperationException($"类型 {typeof(TRepository).FullName} 未找到");
            }
            return(repo);
        }
 public DefaultStorageService(ClusterService clusterSvce,
                              IOptionsMonitor <GeneralOption> option, IOptionsMonitor <DbOption> dbOption,
                              ILogger <DefaultStorageService> logger, IMimeProvider mimeProvider, IRepositoryAccessor repoAccessor)
 {
     _clusterSvce  = clusterSvce;
     _logger       = logger;
     _mimeProvider = mimeProvider;
     _repoAccessor = repoAccessor;
     _dbOption     = dbOption;
     _option       = option;
 }
Пример #6
0
 public FileUploadService(IStorageService storageSvce, ClusterService clusterSvce, ILogger <FileUploadService> logger,
                          IMimeProvider mimeProvider, IRepositoryAccessor dataAccessor, AppSecretSigner appSecretSigner, IFileTokenCodec fileTokenCodec, IOwnerTokenCodec ownerTokenCodec, IHttpContextAccessor httpCtxAccessor)
 {
     _storageSvce     = storageSvce;
     _clusterSvce     = clusterSvce;
     _logger          = logger;
     _mimeProvider    = mimeProvider;
     _dataAccessor    = dataAccessor;
     _appSecretSigner = appSecretSigner;
     _fileTokenCodec  = fileTokenCodec;
     _ownerTokenCodec = ownerTokenCodec;
     _httpCtxAccessor = httpCtxAccessor;
 }
Пример #7
0
 public RawFileHandler(IOptionsMonitor <GeneralOption> options, IRepositoryAccessor repoAccessor)
 {
     _options      = options;
     _repoAccessor = repoAccessor;
 }
Пример #8
0
 public Repository(string id, IRepositoryAccessor accessor)
 {
     this.UrlName = id;
     this.Accessor = accessor;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="RepositoryManager"/> class.
 /// </summary>
 /// <param name="accessor">The accessor.</param>
 /// <param name="settings">The settings.</param>
 public RepositoryManager(IRepositoryAccessor accessor, IOptions <RepositoryAppSettings> settings)
 {
     _accessor = accessor;
     _settings = settings.Value;
 }