From e4dc90356ed9803389ab36e067adfb7380f944a0 Mon Sep 17 00:00:00 2001 From: Lee Dumond Date: Mon, 6 May 2019 14:57:44 -0500 Subject: [PATCH] provide support for cancellation tokens in command handlers --- .../Application/Commands/CancelOrderCommandHandler.cs | 2 +- .../Application/Commands/CreateOrderCommandHandler.cs | 2 +- .../Application/Commands/IdentifiedCommandHandler.cs | 2 +- .../SetAwaitingValidationOrderStatusCommandHandler.cs | 2 +- .../Application/Commands/SetPaidOrderStatusCommandHandler.cs | 4 ++-- .../Commands/SetStockConfirmedOrderStatusCommandHandler.cs | 4 ++-- .../Commands/SetStockRejectedOrderStatusCommandHandler.cs | 4 ++-- .../Application/Commands/ShipOrderCommandHandler.cs | 2 +- ...teOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs | 2 +- .../Ordering/Ordering.Infrastructure/OrderingContext.cs | 2 +- 10 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommandHandler.cs b/src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommandHandler.cs index 85858486c..07e10e7b1 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommandHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommandHandler.cs @@ -33,7 +33,7 @@ namespace Ordering.API.Application.Commands } orderToUpdate.SetCancelledStatus(); - return await _orderRepository.UnitOfWork.SaveEntitiesAsync(); + return await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken); } } diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs b/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs index 00a088c09..b2fff253d 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs @@ -58,7 +58,7 @@ _orderRepository.Add(order); return await _orderRepository.UnitOfWork - .SaveEntitiesAsync(); + .SaveEntitiesAsync(cancellationToken); } } diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/IdentifiedCommandHandler.cs b/src/Services/Ordering/Ordering.API/Application/Commands/IdentifiedCommandHandler.cs index e389e3975..01c42f109 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/IdentifiedCommandHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/IdentifiedCommandHandler.cs @@ -96,7 +96,7 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands command); // Send the embeded business command to mediator so it runs its related CommandHandler - var result = await _mediator.Send(command); + var result = await _mediator.Send(command, cancellationToken); _logger.LogInformation( "----- Command result: {@Result} - {CommandName} - {IdProperty}: {CommandId} ({@Command})", diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/SetAwaitingValidationOrderStatusCommandHandler.cs b/src/Services/Ordering/Ordering.API/Application/Commands/SetAwaitingValidationOrderStatusCommandHandler.cs index c40ddb37f..f329d7c3f 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/SetAwaitingValidationOrderStatusCommandHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/SetAwaitingValidationOrderStatusCommandHandler.cs @@ -33,7 +33,7 @@ namespace Ordering.API.Application.Commands } orderToUpdate.SetAwaitingValidationStatus(); - return await _orderRepository.UnitOfWork.SaveEntitiesAsync(); + return await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken); } } diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/SetPaidOrderStatusCommandHandler.cs b/src/Services/Ordering/Ordering.API/Application/Commands/SetPaidOrderStatusCommandHandler.cs index 8282bf6ab..f0400ec16 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/SetPaidOrderStatusCommandHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/SetPaidOrderStatusCommandHandler.cs @@ -27,7 +27,7 @@ namespace Ordering.API.Application.Commands public async Task Handle(SetPaidOrderStatusCommand command, CancellationToken cancellationToken) { // Simulate a work time for validating the payment - await Task.Delay(10000); + await Task.Delay(10000, cancellationToken); var orderToUpdate = await _orderRepository.GetAsync(command.OrderNumber); if(orderToUpdate == null) @@ -36,7 +36,7 @@ namespace Ordering.API.Application.Commands } orderToUpdate.SetPaidStatus(); - return await _orderRepository.UnitOfWork.SaveEntitiesAsync(); + return await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken); } } diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/SetStockConfirmedOrderStatusCommandHandler.cs b/src/Services/Ordering/Ordering.API/Application/Commands/SetStockConfirmedOrderStatusCommandHandler.cs index e9c3eb75c..b76c16ec6 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/SetStockConfirmedOrderStatusCommandHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/SetStockConfirmedOrderStatusCommandHandler.cs @@ -27,7 +27,7 @@ namespace Ordering.API.Application.Commands public async Task Handle(SetStockConfirmedOrderStatusCommand command, CancellationToken cancellationToken) { // Simulate a work time for confirming the stock - await Task.Delay(10000); + await Task.Delay(10000, cancellationToken); var orderToUpdate = await _orderRepository.GetAsync(command.OrderNumber); if(orderToUpdate == null) @@ -36,7 +36,7 @@ namespace Ordering.API.Application.Commands } orderToUpdate.SetStockConfirmedStatus(); - return await _orderRepository.UnitOfWork.SaveEntitiesAsync(); + return await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken); } } diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/SetStockRejectedOrderStatusCommandHandler.cs b/src/Services/Ordering/Ordering.API/Application/Commands/SetStockRejectedOrderStatusCommandHandler.cs index 2e6c794d2..98d8dfd77 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/SetStockRejectedOrderStatusCommandHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/SetStockRejectedOrderStatusCommandHandler.cs @@ -27,7 +27,7 @@ namespace Ordering.API.Application.Commands public async Task Handle(SetStockRejectedOrderStatusCommand command, CancellationToken cancellationToken) { // Simulate a work time for rejecting the stock - await Task.Delay(10000); + await Task.Delay(10000, cancellationToken); var orderToUpdate = await _orderRepository.GetAsync(command.OrderNumber); if(orderToUpdate == null) @@ -37,7 +37,7 @@ namespace Ordering.API.Application.Commands orderToUpdate.SetCancelledStatusWhenStockIsRejected(command.OrderStockItems); - return await _orderRepository.UnitOfWork.SaveEntitiesAsync(); + return await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken); } } diff --git a/src/Services/Ordering/Ordering.API/Application/Commands/ShipOrderCommandHandler.cs b/src/Services/Ordering/Ordering.API/Application/Commands/ShipOrderCommandHandler.cs index fcac86ef9..4e1173c05 100644 --- a/src/Services/Ordering/Ordering.API/Application/Commands/ShipOrderCommandHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/Commands/ShipOrderCommandHandler.cs @@ -33,7 +33,7 @@ namespace Ordering.API.Application.Commands } orderToUpdate.SetShippedStatus(); - return await _orderRepository.UnitOfWork.SaveEntitiesAsync(); + return await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken); } } diff --git a/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderStartedEvent/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs b/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderStartedEvent/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs index e47192dcd..054c20de5 100644 --- a/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderStartedEvent/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs +++ b/src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderStartedEvent/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs @@ -56,7 +56,7 @@ namespace Ordering.API.Application.DomainEventHandlers.OrderStartedEvent _buyerRepository.Add(buyer); await _buyerRepository.UnitOfWork - .SaveEntitiesAsync(); + .SaveEntitiesAsync(cancellationToken); var orderStatusChangedTosubmittedIntegrationEvent = new OrderStatusChangedToSubmittedIntegrationEvent(orderStartedEvent.Order.Id, orderStartedEvent.Order.OrderStatus.Name, buyer.Name); await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedTosubmittedIntegrationEvent); diff --git a/src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs b/src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs index 18e72fe29..66925ffcd 100644 --- a/src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs +++ b/src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs @@ -64,7 +64,7 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure // After executing this line all the changes (from the Command Handler and Domain Event Handlers) // performed through the DbContext will be committed - var result = await base.SaveChangesAsync(); + var result = await base.SaveChangesAsync(cancellationToken); return true; }