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);
        }
示例#3
0
        private void OnConfigurationEntryDeleted(ConfigurationEntryDeleted e)
        {
            var entry = this.entries.SingleOrDefault(item => item.Id == e.EntryId);

            if (entry != null)
            {
                this.entries.Remove(entry);
            }
        }
示例#4
0
        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();
        }
示例#6
0
 private void Apply(ConfigurationEntryDeleted e)
 {
     this.eventAggregator.Publish(e);
 }