/// <summary> /// Create new unit-of-work. /// </summary> /// <param name="dbContextFactory">Database context factory.</param> /// <param name="dbContext">Database access context.</param> /// <param name="entityLifetimeService">Service that manages entity lifetime.</param> /// <param name="domainEventScope">Transactional domain events scope.</param> public UnitOfWork(IDbContextFactory dbContextFactory, IDbContext dbContext, IEntityLifetimeService entityLifetimeService, IEntityDomainEventContext domainEventScope) { this.dbContextFactory = dbContextFactory; this.entityLifetimeService = entityLifetimeService; this.domainEventScope = domainEventScope; this.SetDatabaseContext(dbContext); UnitsOfWorkStack.Add(this); }
/// <summary> /// Create unit-of-work factory. /// </summary> /// <param name="dbContextFactory">Database context factory.</param> /// <param name="entityLifetimeService">Service that manages entity lifetime.</param> /// <param name="domainEventScope">Transactional domain events scope.</param> public UnitOfWorkFactory(IDbContextFactory dbContextFactory, IEntityLifetimeService entityLifetimeService, IEntityDomainEventContext domainEventScope) { this.dbContextFactory = dbContextFactory; this.entityLifetimeService = entityLifetimeService; this.domainEventScope = domainEventScope; }
/// <summary> /// Create an instance of domain service. /// </summary> /// <param name="eventPublisher">Publisher of domain events to the event bus.</param> /// <param name="domainEventScope">Transactional domain events scope.</param> public DomainEventService(IPublisher eventPublisher, IEntityDomainEventContext domainEventScope) { this.eventPublisher = eventPublisher; this.domainEventScope = domainEventScope; }
/// <summary> /// Create new unit-of-work. /// </summary> /// <param name="dbContext">Database access context.</param> /// <param name="entityLifetimeService">Service that manages entity lifetime.</param> /// <param name="domainEventScope">Transactional domain events scope.</param> public UnitOfWork(IDbContext dbContext, IEntityLifetimeService entityLifetimeService, IEntityDomainEventContext domainEventScope) : this(null, dbContext, entityLifetimeService, domainEventScope) { }
/// <summary> /// Create new unit-of-work. /// </summary> /// <param name="dbContextFactory">Database context factory.</param> /// <param name="entityLifetimeService">Service that manages entity lifetime.</param> /// <param name="domainEventScope">Transactional domain events scope.</param> public UnitOfWork(IDbContextFactory dbContextFactory, IEntityLifetimeService entityLifetimeService, IEntityDomainEventContext domainEventScope) : this(dbContextFactory, null, entityLifetimeService, domainEventScope) { }