public void Reprioritize_Task_Updates_Grid_Read_Model() { string taskId = Fixture.Create <string>(); string oldPriority = TaskPriority.Low.DisplayName; var projectId = Fixture.Create <string>(); using (var session = DocumentStore.OpenSession()) { var taskInGridView = new TaskInGridView(taskId, projectId, Fixture.Create <string>(), Fixture.Create <TaskDeadline>(), oldPriority, false); session.Store(taskInGridView); session.SaveChanges(); } var eventHandler = new TaskReprioritizedEventHandler(DocumentStore); var newPriority = TaskPriority.High.DisplayName; var taskReprioritized = new TaskReprioritized(taskId, oldPriority, newPriority); eventHandler.Handle(taskReprioritized); var taskInGridViewQueryHandler = new TaskInGridViewQueryHandler(); var allTasksInProjectQuery = new AllTasksInProjectQuery(projectId); var tasksInProject = taskInGridViewQueryHandler.Handle(allTasksInProjectQuery); var reprioritizedTask = tasksInProject.First(x => x.Id == taskId); Assert.That(reprioritizedTask.Priority, Is.EqualTo(newPriority)); }
public void Handle(TaskReprioritized @event) { using (var session = _documentStore.OpenSession()) { var taskInGridView = session.Load <TaskInGridView>(@event.TaskId); taskInGridView.Priority = @event.NewPriority; session.SaveChanges(); } }
private void Apply(TaskReprioritized @event) { Id = new TaskId(@event.TaskId); _priority = TaskPriority.Parse(@event.NewPriority); }