public AuthorizedTodoItemsRepository(
     ILoggerFactory loggerFactory,
     IJsonApiContext jsonApiContext,
     IDbContextResolver contextResolver,
     IAuthorizationService authService)
     : base(loggerFactory, jsonApiContext, contextResolver)
 {
     _logger      = loggerFactory.CreateLogger <AuthorizedTodoItemsRepository>();
     _authService = authService;
 }
 // NOTE: this repository MUST not rely on any other repositories or services
 public CurrentUserRepository(
     ILoggerFactory loggerFactory,
     IJsonApiContext jsonApiContext,
     IDbContextResolver contextResolver,
     ICurrentUserContext currentUserContext
     ) : base(loggerFactory, jsonApiContext, contextResolver)
 {
     this.DBContext          = (AppDbContext)contextResolver.GetContext();
     this.CurrentUserContext = currentUserContext;
 }
        public RepositoryRelationshipUpdateHelper(IDbContextResolver contextResolver, IResourceFactory resourceFactory)
        {
            if (contextResolver == null)
            {
                throw new ArgumentNullException(nameof(contextResolver));
            }

            _resourceFactory = resourceFactory ?? throw new ArgumentNullException(nameof(resourceFactory));
            _context         = contextResolver.GetContext();
        }
        public static IDbContext Create(DbContextOption option)
        {
            //if (option.DbContextType != null)
            //{
            //    return (IDbContext)ObjectHelper.CreateInstance(option.DbContextType, new object[] { option.IOMode, option.ConnectionStringName });
            //}
            IDbContextResolver resolver = IoC.Container.Resolve <IDbContextResolver>();

            return(resolver.Resolve(option));
        }
Ejemplo n.º 5
0
 public MigrateExecuter(
     IUnitOfWorkManager unitOfWorkManager,
     IDbContextResolver dbContextResolver,
     Log log)
 {
     _unitOfWorkManager = unitOfWorkManager;
     _dbContextResolver = dbContextResolver;
     _log = log;
     _appConfiguration = ISASConfiguration.Get(typeof(ISASMigratorModule).GetAssembly().GetDirectoryPathOrNull());
 }
Ejemplo n.º 6
0
 public TestModelRepository(
     ITargetedFields targetedFields,
     IDbContextResolver contextResolver,
     IResourceGraph resourceGraph,
     IResourceFactory resourceFactory,
     IEnumerable <IQueryConstraintProvider> constraintProviders,
     ILoggerFactory loggerFactory)
     : base(targetedFields, contextResolver, resourceGraph, resourceFactory, constraintProviders, loggerFactory)
 {
 }
Ejemplo n.º 7
0
 public AbpZeroDbMigrator(
     IUnitOfWorkManager unitOfWorkManager,
     IDbPerTenantConnectionStringResolver connectionStringResolver,
     IDbContextResolver dbContextResolver)
     : base(
         unitOfWorkManager,
         connectionStringResolver,
         dbContextResolver)
 {
 }
Ejemplo n.º 8
0
        public DbContext CreateDbContext <TDbContext>(string connectionString, IDbContextResolver dbContextResolver)
            where TDbContext : DbContext
        {
            EnsureCurrentTransactionInitialized();

            var dbContext = dbContextResolver.Resolve <TDbContext>(connectionString);

            DbContexts.Add(dbContext);
            return(dbContext);
        }
Ejemplo n.º 9
0
 public EfUnitOfWork(IIocResolve iocResolver, IUnitOfWorkDefaultOptions defaultOptions, IConnectionStringResolver connectionStringResolver,
                     IEfTransactionStrategy transactionStrategy, IDbContextTypeMatcher dbContextTypeMatche,
                     IDbContextResolver dbContextResolver) : base(connectionStringResolver)
 {
     IocResolver           = iocResolver;
     _transactionStrategy  = transactionStrategy;
     _dbContextTypeMatcher = dbContextTypeMatche;
     _dbContextResolver    = dbContextResolver;
     _activeDbContexts     = new Dictionary <Type, DbContext>();
 }
 public TodoItemRepository(
     IDbContextResolver contextResolver,
     ILoggerFactory loggerFactory,
     IJsonApiContext jsonApiContext,
     IAuthenticationService authenticationService)
     : base(loggerFactory, jsonApiContext, contextResolver)
 {
     _logger = loggerFactory.CreateLogger <TodoItemRepository>();
     _authenticationService = authenticationService;
 }
Ejemplo n.º 11
0
        public LyricRepository(ExtraDbContext extraDbContext, ITargetedFields targetedFields,
                               IDbContextResolver contextResolver, IResourceGraph resourceGraph, IResourceFactory resourceFactory,
                               IEnumerable <IQueryConstraintProvider> constraintProviders, ILoggerFactory loggerFactory)
            : base(targetedFields, contextResolver, resourceGraph, resourceFactory, constraintProviders, loggerFactory)
        {
            _extraDbContext = extraDbContext;

            extraDbContext.Database.EnsureCreated();
            extraDbContext.Database.BeginTransaction();
        }
Ejemplo n.º 12
0
        private IResourceReadRepository <TModel, int> CreateTestRepository <TModel>(AppDbContext dbContext, IResourceGraph resourceGraph)
            where TModel : class, IIdentifiable <int>
        {
            var resourceFactory         = new TestResourceFactory();
            IDbContextResolver resolver = CreateTestDbResolver(dbContext);
            var targetedFields          = new TargetedFields();

            return(new EntityFrameworkCoreRepository <TModel, int>(targetedFields, resolver, resourceGraph, resourceFactory,
                                                                   Enumerable.Empty <IQueryConstraintProvider>(), NullLoggerFactory.Instance));
        }
Ejemplo n.º 13
0
 public UserRepository(
     ILoggerFactory loggerFactory,
     IJsonApiContext jsonApiContext,
     IOrganizationContext organizationContext,
     ICurrentUserContext currentUserContext,
     IDbContextResolver contextResolver
     ) : base(loggerFactory, jsonApiContext, contextResolver)
 {
     this.OrganizationContext = organizationContext;
     this.CurrentUserContext  = currentUserContext;
 }
Ejemplo n.º 14
0
 public Service(
     IEfdiagramModelParser <DbContext> parser,
     IDbContextResolver resolver,
     IDiagramGenerator generator,
     IDirectory dir)
 {
     this.parser    = parser;
     this.resolver  = resolver;
     this.generator = generator;
     this.dir       = dir;
 }
Ejemplo n.º 15
0
 public OrganizationInviteRequestRepository(
     ILoggerFactory loggerFactory,
     IJsonApiContext jsonApiContext,
     IDbContextResolver contextResolver,
     CurrentUserRepository currentUserRepository,
     EntityHooksService <OrganizationInviteRequest> statusUpdateService,
     IBackgroundJobClient backgroundJobClient
     ) : base(loggerFactory, jsonApiContext, currentUserRepository, statusUpdateService, contextResolver)
 {
     this.backgroundJobClient = backgroundJobClient;
 }
Ejemplo n.º 16
0
 public EfCoreUnitOfWork(
     IServiceProvider serviceProvider,
     IEfCoreTransactionStrategy transactionStrategy,
     IDbContextResolver dbContextResolver
     )
 {
     this.ServiceProvider      = serviceProvider;
     this._transactionStrategy = transactionStrategy;
     this.ActiveDbContexts     = new Dictionary <string, DbContext>();
     this._dbContextResolver   = dbContextResolver;
 }
 public ProjectImportRepository(
     ILoggerFactory loggerFactory,
     IJsonApiContext jsonApiContext,
     IDbContextResolver contextResolver,
     CurrentUserRepository currentUserRepository,
     EntityHooksService <ProjectImport> statusUpdateService,
     IBackgroundJobClient backgroundJobClient
     ) : base(loggerFactory, jsonApiContext, currentUserRepository, statusUpdateService, contextResolver)
 {
     this.backgroundJobClient = backgroundJobClient;
 }
 public WorkflowValidationService(
     IServiceProvider serviceProvider,
     IDbContextResolver contextResolver,
     IJobRepository <ProductWorkflowScheme, Guid> productWorkflowSchemeRepository
     )
 {
     ServiceProvider = serviceProvider;
     ProductWorkflowSchemeRepository = productWorkflowSchemeRepository;
     this.dbContext = contextResolver.GetContext();
     this.dbSet     = contextResolver.GetDbSet <WorkflowScheme>();
 }
Ejemplo n.º 19
0
 /// <summary>
 /// Creates a new <see cref="EfUnitOfWork"/>.
 /// </summary>
 public EfUnitOfWork(
     IIocResolver iocResolver,
     IConnectionStringResolver connectionStringResolver,
     IDbContextResolver dbContextResolver,
     IUnitOfWorkDefaultOptions defaultOptions)
     : base(connectionStringResolver, defaultOptions)
 {
     IocResolver        = iocResolver;
     _dbContextResolver = dbContextResolver;
     ActiveDbContexts   = new Dictionary <string, DbContext>();
 }
Ejemplo n.º 20
0
 public ResultCapturingRepository(
     ITargetedFields targetedFields,
     IDbContextResolver contextResolver,
     IResourceGraph resourceGraph,
     IResourceFactory resourceFactory,
     IEnumerable <IQueryConstraintProvider> constraintProviders,
     ILoggerFactory loggerFactory,
     ResourceCaptureStore captureStore)
     : base(targetedFields, contextResolver, resourceGraph, resourceFactory, constraintProviders, loggerFactory)
 {
     _captureStore = captureStore;
 }
 public DefaultResourceRepository(
     ITargetedFields targetedFields,
     IDbContextResolver contextResolver,
     IResourceGraph resourceGraph,
     IGenericServiceFactory genericServiceFactory,
     ILoggerFactory loggerFactory = null)
 {
     _targetedFields        = targetedFields;
     _resourceGraph         = resourceGraph;
     _genericServiceFactory = genericServiceFactory;
     _context = contextResolver.GetContext();
     _dbSet   = _context.Set <TResource>();
 }
Ejemplo n.º 22
0
 public CustomActiveUnitOfWork(
     IIocResolver iocResolver,
     IConnectionStringResolver connectionStringResolver,
     IUnitOfWorkFilterExecuter filterExecuter,
     IDbContextResolver dbContextResolver,
     IUnitOfWorkDefaultOptions defaultOptions,
     IDbContextTypeMatcher dbContextTypeMatcher,
     IEfCoreTransactionStrategy transactionStrategy)
     : base(iocResolver,
            connectionStringResolver, filterExecuter, dbContextResolver, defaultOptions, dbContextTypeMatcher,
            transactionStrategy)
 {
 }
Ejemplo n.º 23
0
        public EfCoreUnitOfWork(
            IServiceProvider serviceProvider,
            IEfCoreTransactionStrategy transactionStrategy,
            IDbContextResolver dbContextResolver,
            IConnectionStringResolver connectionStringResolver)
        {
            _serviceProvider          = serviceProvider;
            _transactionStrategy      = transactionStrategy;
            _dbContextResolver        = dbContextResolver;
            _connectionStringResolver = connectionStringResolver;

            _activeDbContexts = new Dictionary <string, DbContext>();
        }
Ejemplo n.º 24
0
 public UserRepository(
     ILoggerFactory loggerFactory,
     IJsonApiContext jsonApiContext,
     IOrganizationContext organizationContext,
     ICurrentUserContext currentUserContext,
     CurrentUserRepository currentUserRepository,
     EntityHooksService <User> statusUpdateService,
     IDbContextResolver contextResolver
     ) : base(loggerFactory, jsonApiContext, currentUserRepository, statusUpdateService, contextResolver)
 {
     this.OrganizationContext = organizationContext;
     this.CurrentUserContext  = currentUserContext;
 }
 public DefaultEFCoreDbMigrator(
     ILogger <DefaultEFCoreDbMigrator <TDbContext> > logger,
     IConnectionStringResolver connectionStringResolver,
     IUnitOfWorkManager unitOfWorkManager,
     IDbContextResolver dbContextResolver,
     IEfCoreDbSeeder <TDbContext> seeder)
 {
     _logger = logger ?? throw new ArgumentNullException(nameof(logger));
     _connectionStringResolver = connectionStringResolver ?? throw new ArgumentNullException(nameof(connectionStringResolver));
     _unitOfWorkManager        = unitOfWorkManager ?? throw new ArgumentNullException(nameof(unitOfWorkManager));
     _dbContextResolver        = dbContextResolver ?? throw new ArgumentNullException(nameof(dbContextResolver));
     _seeder = seeder ?? throw new ArgumentNullException(nameof(seeder));
 }
Ejemplo n.º 26
0
 /// <summary>
 /// Creates a new <see cref="EfUnitOfWork"/>.
 /// </summary>
 public EfUnitOfWork(
     IIocResolver iocResolver,
     IDbContextResolver dbContextResolver,
     IEfUnitOfWorkFilterExecuter filterExecuter,
     IUnitOfWorkDefaultOptions defaultOptions,
     IDbContextTypeMatcher dbContextTypeMatcher)
     : base(
         defaultOptions,
         filterExecuter)
 {
     IocResolver        = iocResolver;
     _dbContextResolver = dbContextResolver;
     ActiveDbContexts   = new Dictionary <string, DbContext>();
 }
        public EfCoreUnitOfWork(
            IIocResolver iocResolver,
            IEfCoreTransactionStrategy transactionStrategy,
            IDbContextResolver dbContextResolver,
            IConnectionStringResolver connectionStringResolver,
            ISessionInfo sessionInfo)
            : base(connectionStringResolver, sessionInfo)
        {
            IocResolver         = iocResolver;
            TransactionStrategy = transactionStrategy;
            DbContextResolver   = dbContextResolver;

            ActiveDbContexts = new Dictionary <string, EfCoreDbContextBase>();
        }
Ejemplo n.º 28
0
        /// <summary>
        /// 获取指定数据上下文类型<typeparamref name="TEntity"/>的实例
        /// </summary>
        /// <typeparam name="TEntity">实体类型</typeparam>
        /// <typeparam name="TKey">实体主键类型</typeparam>
        /// <returns><typeparamref name="TEntity"/>所属上下文类的实例</returns>
        public IDbContext GetDbContext <TEntity, TKey>() where TEntity : IEntity <TKey> where TKey : IEquatable <TKey>
        {
            IEntityConfigurationTypeFinder typeFinder = _serviceProvider.GetService <IEntityConfigurationTypeFinder>();
            Type entityType    = typeof(TEntity);
            Type dbContextType = typeFinder.GetDbContextTypeForEntity(entityType);

            DbContext dbContext;
            OSharpDbContextOptions  dbContextOptions = GetDbContextResolveOptions(dbContextType);
            DbContextResolveOptions resolveOptions   = new DbContextResolveOptions(dbContextOptions);
            IDbContextResolver      contextResolver  = _serviceProvider.GetService <IDbContextResolver>();
            ActiveTransactionInfo   transInfo        = ActiveTransactionInfos.GetOrDefault(resolveOptions.ConnectionString);

            //连接字符串的事务不存在,添加起始上下文事务信息
            if (transInfo == null)
            {
                resolveOptions.ExistingConnection = null;
                dbContext = contextResolver.Resolve(resolveOptions);
                RelationalDatabaseCreator dbCreator;
                if ((dbCreator = dbContext.GetService <IDatabaseCreator>() as RelationalDatabaseCreator) != null)
                {
                    if (!dbCreator.Exists())
                    {
                        throw new OsharpException($"数据上下文“{dbContext.GetType().FullName}”的数据库不存在,请通过 Migration 功能进行数据迁移创建数据库。");
                    }
                }
                IDbContextTransaction transaction = dbContext.Database.BeginTransaction();
                transInfo = new ActiveTransactionInfo(transaction, dbContext);
                ActiveTransactionInfos[resolveOptions.ConnectionString] = transInfo;
            }
            else
            {
                resolveOptions.ExistingConnection = transInfo.DbContextTransaction.GetDbTransaction().Connection;
                //相同连接串相同上下文类型并且已存在对象,直接返回上下文对象
                if (transInfo.StarterDbContext.GetType() == resolveOptions.DbContextType)
                {
                    return(transInfo.StarterDbContext as IDbContext);
                }
                dbContext = contextResolver.Resolve(resolveOptions);
                if (dbContext.IsRelationalTransaction())
                {
                    dbContext.Database.UseTransaction(transInfo.DbContextTransaction.GetDbTransaction());
                }
                else
                {
                    dbContext.Database.BeginTransaction();
                }
                transInfo.AttendedDbContexts.Add(dbContext);
            }
            return(dbContext as IDbContext);
        }
Ejemplo n.º 29
0
 public ProductRepository(
     IOrganizationContext organizationContext,
     ICurrentUserContext currentUserContext,
     UserRepository userRepository,
     ILoggerFactory loggerFactory,
     CurrentUserRepository currentUserRepository,
     IJsonApiContext jsonApiContext,
     IDbContextResolver contextResolver
     ) : base(loggerFactory, jsonApiContext, currentUserRepository, contextResolver)
 {
     this.OrganizationContext = organizationContext;
     this.CurrentUserContext  = currentUserContext;
     this.UserRepository      = userRepository;
 }
Ejemplo n.º 30
0
 public DefaultEfCoreUnitOfWork(
     IIocResolver iocResolver,
     IEfCoreTransactionStrategy transactionStrategy,
     IDbContextResolver dbContextResolver,
     IConnectionStringResolver connectionStringResolver,
     ISessionInfo sessionInfo)
     : base(
         iocResolver,
         transactionStrategy,
         dbContextResolver,
         connectionStringResolver,
         sessionInfo)
 {
 }