public void Check_DomainEvents_ProjectAdded_Raise() { //given //existing project var project = Project.From(EntityId.From(1u), Description.From("descriptionText")); var taskOptionsBuilder = new DbContextOptionsBuilder <ActivityDbContext>(); taskOptionsBuilder.UseSqlite("Data Source=todoagility_projectAdded_test.db;"); var taskDbContext = new ActivityDbContext(taskOptionsBuilder.Options); var repTask = new ActivityRepository(taskDbContext); using var taskDbSession = new DbSession <IActivityRepository>(taskDbContext, repTask); var handlerActivityAdded = new ProjectAddedHandler(taskDbSession); var dispatcher = new DomainEventDispatcher(); dispatcher.Subscribe(typeof(ProjectAddedEvent).FullName, handlerActivityAdded); //when dispatcher.Publish(ProjectAddedEvent.For(project)); //then var projectId = EntityId.From(1u); var proj = repTask.GetProject(projectId); Assert.NotNull(proj); }
private ProjectAggregationRoot(Project project) { if (project.ValidationResults.IsValid) { Apply(project); if (project.IsNew()) { Raise(ProjectAddedEvent.For(project)); } } ValidationResults = project.ValidationResults; }
/// <summary> /// to register new aggregate as change /// </summary> /// <param name="descr"></param> /// <param name="entityId"></param> /// <param name="project"></param> private ProjectAggregationRoot(Description descr, EntityId entityId) : this(Project.From(entityId, descr)) { Change(_entityRoot); Raise(ProjectAddedEvent.For(_entityRoot)); }