private void OnPropertyDefinitionAdded(PropertyDefinitionAdded e) { var property = this.Definition.Properties.Single(p => p.Id == e.PropertyId); var value = new ConfigurationValue(this.EventAggregator, property, null); this.values.Add(property.Id, value); }
public async Task Handle_PropertyDefinitionAddedEvent_AddsValueToEntry() { // arrange var initialProject = this.CreateProject(); var initialEntity = initialProject.Entities.First(); var initialEntry = initialEntity.Entries.First(); var message = new PropertyDefinitionAdded { Id = initialProject.Id, ParentEntityId = initialEntity.Id, PropertyId = Guid.NewGuid(), Name = "New property name", Description = "New property description", Version = 2, TimeStamp = DateTimeOffset.Now }; var target = new ReadModelEventHandler(this.context.DbContext, this.context.Mapper); // act await target.Handle(message); // assert var values = this.context.DbContext.Values.Where(p => p.EntryId == initialEntry.Id); Assert.Equal(3, values.Count()); var propertyValue = values.FirstOrDefault(v => v.PropertyId == message.PropertyId); Assert.NotNull(propertyValue); Assert.Equal(propertyValue.Value, null); }
public async Task Handle_PropertyDefinitionAddedEvent_CreatesProperty() { // arrange var initialProject = this.CreateProject(); var initialEntity = initialProject.Entities.First(); var message = new PropertyDefinitionAdded { Id = initialProject.Id, ParentEntityId = initialEntity.Id, PropertyId = Guid.NewGuid(), Name = "New property name", Description = "New property description", Version = 2, TimeStamp = DateTimeOffset.Now }; var target = new ReadModelEventHandler(this.context.DbContext, this.context.Mapper); // act await target.Handle(message); // assert var property = this.context.DbContext.Properties.FirstOrDefault(p => p.Id == message.PropertyId); Assert.NotNull(property); Assert.Equal(message.ParentEntityId, property.EntityId); Assert.Equal(message.Name, property.Name); Assert.Equal(message.Description, property.Description); }
public async Task Handle(PropertyDefinitionAdded message) { message.ArgumentNotNull(nameof(message)); await this.AddEntityAsync <PropertyDefinitionAdded, ConfigurationProperty>(message); var entries = this.dbContext.Entries.Where(e => e.EntityId == message.ParentEntityId); var newPropertyValues = entries.Select(entry => new ConfigurationValue { Id = Guid.NewGuid(), EntryId = entry.Id, PropertyId = message.PropertyId }); this.dbContext.Values.AddRange(newPropertyValues); await this.dbContext.SaveChangesAsync(); }
public void AddPropertyDefinition(Guid entityId, string name, string description, string propertyType) { name.ArgumentNotNullOrEmpty(nameof(name)); description.ArgumentNotNull(nameof(description)); propertyType.ArgumentNotNullOrEmpty(nameof(propertyType)); // the entity gets fetched to assert its existence. EntityDefinition entity = this.GetEntityDefinition(entityId); var e = new PropertyDefinitionAdded { Id = this.Id, ParentEntityId = entity.Id, PropertyId = Guid.NewGuid(), Name = name, Description = description, PropertyType = propertyType }; this.ApplyChange(e); }
private void OnPropertyDefinitionAdded(PropertyDefinitionAdded e) { var entity = new PropertyDefinition(this.EventAggregator, e.PropertyId, e.Name, e.Description, e.PropertyType); this.properties.Add(entity); }
private void Apply(PropertyDefinitionAdded e) { this.eventAggregator.Publish(e); }