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)); }
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); } } } }
public GalaxyDbContext(DbContextOptions options, IAppSessionContext appSession) : this(options) { this._appSession = appSession ?? throw new ArgumentNullException(nameof(appSession)); }
private void ApplyTenantState(IMultiTenant entity, IAppSessionContext session) { entity.SyncTenantState(session.TenantId); }
private void ApplyUpdatedAuditState(IAudit entity, IAppSessionContext session) { entity.SyncAuditState(lastmodifierUserId: session.UserId, lastModificationTime: DateTime.Now , creatorUserId: entity.CreatorUserId, creationTime: entity.CreationTime); }
private void ApplyCreatedAuditState(IAudit entity, IAppSessionContext session) { entity.SyncAuditState(creatorUserId: session.UserId, creationTime: DateTime.Now); }
public GalaxyIdentityDbContext(DbContextOptions options, IAppSessionContext appSession) : base(options) { }
public CustomerSampleDbContext(DbContextOptions options, IAppSessionContext appSession) : base(options, appSession) { }
public SessionContext(IAppSessionContext appSessionContext) { _appSessionContext = appSessionContext; }
public PaymentSampleDbContext(DbContextOptions options, IAppSessionContext appSession) : base(options, appSession) { }
public IdentityContext(DbContextOptions options, IAppSessionContext appSession) : base(options, appSession) { }