public async Task LinkingTask_ShouldCreateProjection() { // Arrange using (var connection = this._testInfrastructure.OpenDatabaseConnection()) { // Arrange var commandDispatcher = this._testInfrastructure.DiContainer.GetInstance <IMediator>(); var taskLinksRepository = new TaskLinksRepository(); var newTask1 = await this.CreateNewTask(); var newTask2 = await this.CreateNewTask(); // Act var result = await commandDispatcher.Send(new LinkTaskCommand(newTask1.TaskId, newTask2.TaskId)); // Assert var links = await taskLinksRepository.GetLinksForTaskIdAsync(connection, newTask1.TaskId); var links2 = await taskLinksRepository.GetLinksForTaskIdAsync(connection, newTask2.TaskId); Assert.That(links.Count, Is.EqualTo(1)); Assert.That(links2.Count, Is.EqualTo(1)); Assert.That(links.Single().LinkedTaskId, Is.EqualTo(newTask2.TaskId)); Assert.That(links2.Single().LinkedTaskId, Is.EqualTo(newTask1.TaskId)); } }
public async Task Handle(TaskLinkCreatedEvent notification, CancellationToken cancellationToken) { using (var connection = this._dbConnectionFactory.OpenConnection()) { var repository = new TaskLinksRepository(); await repository.CreateNewLinkbetweenTasksAsync(connection, notification.AggregateId, notification.LinkToTaskId); } }