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

            var message = new ProjectModified
            {
                Id          = initialProject.Id,
                Version     = 2,
                TimeStamp   = DateTimeOffset.Now,
                Name        = "New Project name",
                Description = "New Project description"
            };

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

            // act
            await target.Handle(message);

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

            Assert.NotNull(project);
            Assert.Equal(message.Version, project.Version);
            Assert.Equal(message.TimeStamp, project.TimeStamp);
            Assert.Equal(message.Name, project.Name);
            Assert.Equal(message.Description, project.Description);
        }
        public async Task Handle(ProjectModified message)
        {
            message.ArgumentNotNull(nameof(message));

            await this.UpdateProjectAsync(message);

            await this.dbContext.SaveChangesAsync();
        }
Example #3
0
        public void SetProjectAttributes(string name, string description)
        {
            name.ArgumentNotNullOrEmpty(nameof(name));
            description.ArgumentNotNull(nameof(description));

            var e = new ProjectModified
            {
                Id          = this.Id,
                Name        = name,
                Description = description,
            };

            this.ApplyChange(e);
        }
Example #4
0
 private void RaiseProjectModified(TimeTrackerDataSet.ProjectsRow projectEntry)
 {
     ProjectModified?.Invoke(this, new TimeTrackerEvent(projectEntry, null));
 }
Example #5
0
 private void Apply(ProjectModified e)
 {
     this.Name        = e.Name;
     this.Description = e.Description;
 }