public async Task Handle_ConfigurationEntryDeletedEvent_DeletesValues() { // arrange var initialProject = this.CreateProject(); var initialEntity = initialProject.Entities.First(); var initialEntry = initialEntity.Entries.First(); var message = new ConfigurationEntryDeleted { Id = initialProject.Id, EntryId = initialEntry.Id, 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(e => e.EntryId == initialEntry.Id); Assert.Empty(values); }
public async Task Handle_ConfigurationEntryDeletedEvent_UpdatesProjectVersionTracking() { // arrange var initialProject = this.CreateProject(); var initialEntity = initialProject.Entities.First(); var initialEntry = initialEntity.Entries.First(); var message = new ConfigurationEntryDeleted { Id = initialProject.Id, EntryId = initialEntry.Id, Version = 2, TimeStamp = DateTimeOffset.Now }; 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); }
private void OnConfigurationEntryDeleted(ConfigurationEntryDeleted e) { var entry = this.entries.SingleOrDefault(item => item.Id == e.EntryId); if (entry != null) { this.entries.Remove(entry); } }
public void DeleteEntry(Guid entryId) { var e = new ConfigurationEntryDeleted { Id = this.Id, EntryId = entryId }; this.ApplyChange(e); }
public async Task Handle(ConfigurationEntryDeleted message) { message.ArgumentNotNull(nameof(message)); await this.UpdateProjectAsync(message); ConfigurationEntry entry = this.dbContext.Entries.Single(p => p.Id == message.EntryId); this.dbContext.Entries.Remove(entry); await this.dbContext.SaveChangesAsync(); }
private void Apply(ConfigurationEntryDeleted e) { this.eventAggregator.Publish(e); }