Пример #1
0
 public EFUnitOfWork(IGalaxyContextAsync dataContext
                     , IAppSessionContext session
                     , IMediator mediator)
 {
     _dataContext  = dataContext ?? throw new ArgumentNullException(nameof(dataContext));
     _session      = session ?? throw new ArgumentNullException(nameof(session));
     _repositories = new Dictionary <string, dynamic>();
     _mediator     = mediator ?? throw new ArgumentNullException(nameof(mediator));
 }
Пример #2
0
        public virtual void SyncObjectsAuditPreCommit(IAppSessionContext session)
        {
            if (!ChangeTracker.Entries().Any(e => (e.Entity is IAudit)))
            {
                return;
            }

            foreach (var dbEntityEntry in ChangeTracker.Entries <IAudit>())
            {
                var entity = (dbEntityEntry.Entity);

                if ((dbEntityEntry.State) == EntityState.Unchanged)
                {
                    continue;
                }

                if ((dbEntityEntry.State) == EntityState.Added)
                {
                    if (typeof(IMultiTenant).IsAssignableFrom(entity.GetType()))
                    {
                        ApplyTenantState(entity as IMultiTenant, session);
                        ApplyCreatedAuditState(entity, session);
                    }
                    else
                    {
                        ApplyCreatedAuditState(entity, session);
                    }
                }
                else
                {
                    if (typeof(IMultiTenant).IsAssignableFrom(entity.GetType()))
                    {
                        ApplyTenantState(entity as IMultiTenant, session);
                        ApplyUpdatedAuditState(entity, session);
                    }
                    else
                    {
                        ApplyUpdatedAuditState(entity, session);
                    }
                }
            }
        }
Пример #3
0
 public GalaxyDbContext(DbContextOptions options, IAppSessionContext appSession) : this(options)
 {
     this._appSession = appSession ?? throw new ArgumentNullException(nameof(appSession));
 }
Пример #4
0
 private void ApplyTenantState(IMultiTenant entity, IAppSessionContext session)
 {
     entity.SyncTenantState(session.TenantId);
 }
Пример #5
0
 private void ApplyUpdatedAuditState(IAudit entity, IAppSessionContext session)
 {
     entity.SyncAuditState(lastmodifierUserId: session.UserId, lastModificationTime: DateTime.Now
                           , creatorUserId: entity.CreatorUserId, creationTime: entity.CreationTime);
 }
Пример #6
0
 private void ApplyCreatedAuditState(IAudit entity, IAppSessionContext session)
 {
     entity.SyncAuditState(creatorUserId: session.UserId, creationTime: DateTime.Now);
 }
 public GalaxyIdentityDbContext(DbContextOptions options, IAppSessionContext appSession) : base(options)
 {
 }
Пример #8
0
 public CustomerSampleDbContext(DbContextOptions options, IAppSessionContext appSession) : base(options, appSession)
 {
 }
Пример #9
0
 public SessionContext(IAppSessionContext appSessionContext)
 {
     _appSessionContext = appSessionContext;
 }
Пример #10
0
 public PaymentSampleDbContext(DbContextOptions options, IAppSessionContext appSession) : base(options, appSession)
 {
 }
Пример #11
0
 public IdentityContext(DbContextOptions options, IAppSessionContext appSession) : base(options, appSession)
 {
 }