public async Task Handle_EntityDefinitionAddedEvent_UpdatesProjectVersionTracking()
        {
            // arrange
            var initialProject = this.CreateProject();

            var message = new EntityDefinitionAdded
            {
                Id          = initialProject.Id,
                EntityId    = Guid.NewGuid(),
                Version     = 2,
                TimeStamp   = DateTimeOffset.Now,
                Name        = "New Entity Name",
                Description = "new Entity Description"
            };

            var target = new ReadModelEventHandler(this.context.DbContext, this.context.Mapper);

            // act
            await target.Handle(message);

            // assert
            var project = this.context.DbContext.Projects.First(p => p.Id == message.Id);

            Assert.Equal(message.Id, project.Id);
            Assert.Equal(message.Version, project.Version);
            Assert.Equal(message.TimeStamp, project.TimeStamp);
        }
        public async Task Handle_EntityDefinitionAddedEvent_CreatesEntity()
        {
            // arrange
            var initialProject = this.CreateProject();

            var message = new EntityDefinitionAdded
            {
                Id          = initialProject.Id,
                EntityId    = Guid.NewGuid(),
                Version     = 2,
                TimeStamp   = DateTimeOffset.Now,
                Name        = "New Entity Name",
                Description = "new Entity Description"
            };

            var target = new ReadModelEventHandler(this.context.DbContext, this.context.Mapper);

            // act
            await target.Handle(message);

            // assert
            var entity = this.context.DbContext.Entities.FirstOrDefault(p => p.Id == message.EntityId);

            Assert.NotNull(entity);
            Assert.Equal(message.EntityId, entity.Id);
            Assert.Equal(message.Id, entity.ProjectId);
            Assert.Equal(message.Name, entity.Name);
            Assert.Equal(message.Description, entity.Description);
        }
        public async Task Handle(EntityDefinitionAdded message)
        {
            message.ArgumentNotNull(nameof(message));

            await this.AddEntityAsync <EntityDefinitionAdded, ConfigurationEntity>(message);

            await this.dbContext.SaveChangesAsync();
        }
Пример #4
0
        public void AddEntityDefinition(string name, string description)
        {
            name.ArgumentNotNullOrEmpty(nameof(name));
            description.ArgumentNotNull(nameof(description));

            var e = new EntityDefinitionAdded
            {
                Id          = this.Id,
                EntityId    = Guid.NewGuid(),
                Name        = name,
                Description = description,
            };

            this.ApplyChange(e);
        }
Пример #5
0
 private void Apply(EntityDefinitionAdded e)
 {
     this.eventAggregator.Publish(e);
 }
        private void OnEntityDefinitionAdded(EntityDefinitionAdded e)
        {
            var entity = new EntityDefinition(this.EventAggregator, e.EntityId, e.Name, e.Description);

            this.entities.Add(entity);
        }
Пример #7
0
 private void OnEntityDefinitionAdded(EntityDefinitionAdded e)
 {
     this.entities.Add(e.EntityId, new ConfigurationEntity(this.EventAggregator, e.EntityId, this.schema));
 }