public async Task Handle(TaskRemovedEvent notification, CancellationToken cancellationToken)
 {
     using (var connection = this._dbConnectionFactory.OpenConnection())
     {
         var laneRepository = new LaneTaskRepository();
         await laneRepository.RemoveTaskFromLaneAsync(connection, notification.TaskId, notification.AggregateId);
     }
 }
Example #2
0
        public async Task Creating_Task_ShouldCreate_TaskLaneProjection()
        {
            // Arrange
            using (var connection = this._testInfrastructure.OpenDatabaseConnection())
            {
                var commandDispatcher       = this._testInfrastructure.DiContainer.GetInstance <IMediator>();
                var repository              = new TaskRepository();
                var categoryRepository      = new CategoryRepository();
                var laneRepository          = new LaneRepository();
                var laneTaskRepository      = new LaneTaskRepository();
                var exampleCategory         = (await categoryRepository.GetAllAsync(connection)).Shuffle().FirstOrDefault();
                var exampleLane             = (await laneRepository.GetAllAsync(connection)).Shuffle().FirstOrDefault();
                var timeStampBeforeCreation = DateTime.Now;
                var taskName    = "Test";
                var taskService = new TaskService(commandDispatcher);

                // Act
                var newTask =
                    await taskService.CreateNewTaskAsync(taskName, exampleCategory.CategoryId, exampleLane.LaneId);

                var projection = await repository.GetByIdAsync(connection, newTask.TaskId);

                var createdLink = await laneTaskRepository.GetLaneTaskByTaskId(connection, newTask.TaskId);

                // Assert
                Assert.That(newTask.TaskId, Is.Not.EqualTo(Guid.Empty));
                Assert.That(createdLink, Is.Not.Null);
                Assert.That(createdLink.TaskId, Is.EqualTo(newTask.TaskId));
                Assert.That(projection, Is.Not.Null);
                Assert.That(projection.TaskId, Is.EqualTo(newTask.TaskId));
                Assert.That(projection.Name, Is.EqualTo(taskName));
                Assert.That(projection.CategoryId, Is.EqualTo(exampleCategory.CategoryId));
                Assert.That(projection.CreatedOn, Is.GreaterThan(timeStampBeforeCreation));
                Assert.That(projection.DueDate, Is.Null);
            }
        }