Skip to content

Commit ed0988a

Browse files
author
Sychev Igor
committed
MediatR from 3 to 4
1 parent 1748480 commit ed0988a

14 files changed

Lines changed: 42 additions & 43 deletions

src/Services/Ordering/Ordering.API/Application/Behaviors/LoggingBehavior.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
using MediatR;
22
using Microsoft.Extensions.Logging;
3-
using System;
4-
using System.Collections.Generic;
5-
using System.Linq;
3+
using System.Threading;
64
using System.Threading.Tasks;
75

86
namespace Ordering.API.Infrastructure.Behaviors
@@ -12,7 +10,7 @@ public class LoggingBehavior<TRequest, TResponse> : IPipelineBehavior<TRequest,
1210
private readonly ILogger<LoggingBehavior<TRequest, TResponse>> _logger;
1311
public LoggingBehavior(ILogger<LoggingBehavior<TRequest, TResponse>> logger) => _logger = logger;
1412

15-
public async Task<TResponse> Handle(TRequest request, RequestHandlerDelegate<TResponse> next)
13+
public async Task<TResponse> Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate<TResponse> next)
1614
{
1715
_logger.LogInformation($"Handling {typeof(TRequest).Name}");
1816
var response = await next();

src/Services/Ordering/Ordering.API/Application/Behaviors/ValidatorBehavior.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
using FluentValidation;
22
using MediatR;
3-
using Microsoft.Extensions.Logging;
43
using Ordering.Domain.Exceptions;
54
using System;
6-
using System.Collections.Generic;
75
using System.Linq;
6+
using System.Threading;
87
using System.Threading.Tasks;
98

109
namespace Ordering.API.Infrastructure.Behaviors
@@ -14,7 +13,7 @@ public class ValidatorBehavior<TRequest, TResponse> : IPipelineBehavior<TRequest
1413
private readonly IValidator<TRequest>[] _validators;
1514
public ValidatorBehavior(IValidator<TRequest>[] validators) => _validators = validators;
1615

17-
public async Task<TResponse> Handle(TRequest request, RequestHandlerDelegate<TResponse> next)
16+
public async Task<TResponse> Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate<TResponse> next)
1817
{
1918
var failures = _validators
2019
.Select(v => v.Validate(request))

src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommandHandler.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@
22
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
33
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
44
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
5-
using System;
6-
using System.Collections.Generic;
7-
using System.Linq;
5+
using System.Threading;
86
using System.Threading.Tasks;
97

108
namespace Ordering.API.Application.Commands
119
{
1210
// Regular CommandHandler
13-
public class CancelOrderCommandHandler : IAsyncRequestHandler<CancelOrderCommand, bool>
11+
public class CancelOrderCommandHandler : IRequestHandler<CancelOrderCommand, bool>
1412
{
1513
private readonly IOrderRepository _orderRepository;
1614

@@ -25,7 +23,7 @@ public CancelOrderCommandHandler(IOrderRepository orderRepository)
2523
/// </summary>
2624
/// <param name="command"></param>
2725
/// <returns></returns>
28-
public async Task<bool> Handle(CancelOrderCommand command)
26+
public async Task<bool> Handle(CancelOrderCommand command, CancellationToken cancellationToken)
2927
{
3028
var orderToUpdate = await _orderRepository.GetAsync(command.OrderNumber);
3129
if(orderToUpdate == null)

src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services;
66
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
77
using System;
8+
using System.Threading;
89
using System.Threading.Tasks;
910

1011
// Regular CommandHandler
1112
public class CreateOrderCommandHandler
12-
: IAsyncRequestHandler<CreateOrderCommand, bool>
13+
: IRequestHandler<CreateOrderCommand, bool>
1314
{
1415
private readonly IOrderRepository _orderRepository;
1516
private readonly IIdentityService _identityService;
@@ -23,7 +24,7 @@ public CreateOrderCommandHandler(IMediator mediator, IOrderRepository orderRepos
2324
_mediator = mediator ?? throw new ArgumentNullException(nameof(mediator));
2425
}
2526

26-
public async Task<bool> Handle(CreateOrderCommand message)
27+
public async Task<bool> Handle(CreateOrderCommand message, CancellationToken cancellationToken)
2728
{
2829
// Add/Update the Buyer AggregateRoot
2930
// DDD patterns comment: Add child entities and value-objects through the Order Aggregate-Root

src/Services/Ordering/Ordering.API/Application/Commands/IdentifiedCommandHandler.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using MediatR;
22
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
3+
using System.Threading;
34
using System.Threading.Tasks;
45

56
namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
@@ -10,7 +11,7 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
1011
/// </summary>
1112
/// <typeparam name="T">Type of the command handler that performs the operation if request is not duplicated</typeparam>
1213
/// <typeparam name="R">Return value of the inner command handler</typeparam>
13-
public class IdentifiedCommandHandler<T, R> : IAsyncRequestHandler<IdentifiedCommand<T, R>, R>
14+
public class IdentifiedCommandHandler<T, R> : IRequestHandler<IdentifiedCommand<T, R>, R>
1415
where T : IRequest<R>
1516
{
1617
private readonly IMediator _mediator;
@@ -37,7 +38,7 @@ protected virtual R CreateResultForDuplicateRequest()
3738
/// </summary>
3839
/// <param name="message">IdentifiedCommand which contains both original command & request ID</param>
3940
/// <returns>Return value of inner command or default value if request same ID was found</returns>
40-
public async Task<R> Handle(IdentifiedCommand<T, R> message)
41+
public async Task<R> Handle(IdentifiedCommand<T, R> message, CancellationToken cancellationToken)
4142
{
4243
var alreadyExists = await _requestManager.ExistAsync(message.Id);
4344
if (alreadyExists)
@@ -55,6 +56,4 @@ public async Task<R> Handle(IdentifiedCommand<T, R> message)
5556
}
5657
}
5758
}
58-
59-
60-
}
59+
}

src/Services/Ordering/Ordering.API/Application/Commands/ShipOrderCommandHandler.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
33
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
44
using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure.Idempotency;
5+
using System.Threading;
56
using System.Threading.Tasks;
67

78
namespace Ordering.API.Application.Commands
89
{
910
// Regular CommandHandler
10-
public class ShipOrderCommandHandler : IAsyncRequestHandler<ShipOrderCommand, bool>
11+
public class ShipOrderCommandHandler : IRequestHandler<ShipOrderCommand, bool>
1112
{
1213
private readonly IOrderRepository _orderRepository;
1314

@@ -22,7 +23,7 @@ public ShipOrderCommandHandler(IOrderRepository orderRepository)
2223
/// </summary>
2324
/// <param name="command"></param>
2425
/// <returns></returns>
25-
public async Task<bool> Handle(ShipOrderCommand command)
26+
public async Task<bool> Handle(ShipOrderCommand command, CancellationToken cancellationToken)
2627
{
2728
var orderToUpdate = await _orderRepository.GetAsync(command.OrderNumber);
2829
if(orderToUpdate == null)

src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/BuyerAndPaymentMethodVerified/UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
using MediatR;
22
using Microsoft.eShopOnContainers.Services.Ordering.Domain.AggregatesModel.OrderAggregate;
33
using Microsoft.Extensions.Logging;
4-
using Ordering.API.Application.IntegrationEvents;
5-
using Ordering.API.Application.IntegrationEvents.Events;
64
using Ordering.Domain.Events;
75
using System;
6+
using System.Threading;
87
using System.Threading.Tasks;
98

109
namespace Ordering.API.Application.DomainEventHandlers.BuyerAndPaymentMethodVerified
1110
{
1211
public class UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler
13-
: IAsyncNotificationHandler<BuyerAndPaymentMethodVerifiedDomainEvent>
12+
: INotificationHandler<BuyerAndPaymentMethodVerifiedDomainEvent>
1413
{
1514
private readonly IOrderRepository _orderRepository;
1615
private readonly ILoggerFactory _logger;
@@ -25,7 +24,7 @@ public UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler(
2524
// Domain Logic comment:
2625
// When the Buyer and Buyer's payment method have been created or verified that they existed,
2726
// then we can update the original Order with the BuyerId and PaymentId (foreign keys)
28-
public async Task Handle(BuyerAndPaymentMethodVerifiedDomainEvent buyerPaymentMethodVerifiedEvent)
27+
public async Task Handle(BuyerAndPaymentMethodVerifiedDomainEvent buyerPaymentMethodVerifiedEvent, CancellationToken cancellationToken)
2928
{
3029
var orderToUpdate = await _orderRepository.GetAsync(buyerPaymentMethodVerifiedEvent.OrderId);
3130
orderToUpdate.SetBuyerId(buyerPaymentMethodVerifiedEvent.Buyer.Id);

src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderGracePeriodConfirmed/OrderStatusChangedToAwaitingValidationDomainEventHandler.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@
99
using Ordering.API.Application.IntegrationEvents;
1010
using System.Linq;
1111
using Ordering.API.Application.IntegrationEvents.Events;
12+
using System.Threading;
1213

1314
public class OrderStatusChangedToAwaitingValidationDomainEventHandler
14-
: IAsyncNotificationHandler<OrderStatusChangedToAwaitingValidationDomainEvent>
15+
: INotificationHandler<OrderStatusChangedToAwaitingValidationDomainEvent>
1516
{
1617
private readonly IOrderRepository _orderRepository;
1718
private readonly ILoggerFactory _logger;
@@ -26,11 +27,11 @@ public OrderStatusChangedToAwaitingValidationDomainEventHandler(
2627
_orderingIntegrationEventService = orderingIntegrationEventService;
2728
}
2829

29-
public async Task Handle(OrderStatusChangedToAwaitingValidationDomainEvent orderStatusChangedToAwaitingValidationDomainEvent)
30+
public async Task Handle(OrderStatusChangedToAwaitingValidationDomainEvent orderStatusChangedToAwaitingValidationDomainEvent, CancellationToken cancellationToken)
3031
{
3132
_logger.CreateLogger(nameof(OrderStatusChangedToAwaitingValidationDomainEvent))
32-
.LogTrace($"Order with Id: {orderStatusChangedToAwaitingValidationDomainEvent.OrderId} has been successfully updated with " +
33-
$"a status order id: {OrderStatus.AwaitingValidation.Id}");
33+
.LogTrace($"Order with Id: {orderStatusChangedToAwaitingValidationDomainEvent.OrderId} has been successfully updated with " +
34+
$"a status order id: {OrderStatus.AwaitingValidation.Id}");
3435

3536
var orderStockList = orderStatusChangedToAwaitingValidationDomainEvent.OrderItems
3637
.Select(orderItem => new OrderStockItem(orderItem.ProductId, orderItem.GetUnits()));

src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderPaid/OrderStatusChangedToPaidDomainEventHandler.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@
99
using Ordering.API.Application.IntegrationEvents;
1010
using System.Linq;
1111
using Ordering.API.Application.IntegrationEvents.Events;
12+
using System.Threading;
1213

1314
public class OrderStatusChangedToPaidDomainEventHandler
14-
: IAsyncNotificationHandler<OrderStatusChangedToPaidDomainEvent>
15+
: INotificationHandler<OrderStatusChangedToPaidDomainEvent>
1516
{
1617
private readonly IOrderRepository _orderRepository;
1718
private readonly ILoggerFactory _logger;
@@ -26,11 +27,11 @@ public OrderStatusChangedToPaidDomainEventHandler(
2627
_orderingIntegrationEventService = orderingIntegrationEventService;
2728
}
2829

29-
public async Task Handle(OrderStatusChangedToPaidDomainEvent orderStatusChangedToPaidDomainEvent)
30+
public async Task Handle(OrderStatusChangedToPaidDomainEvent orderStatusChangedToPaidDomainEvent, CancellationToken cancellationToken)
3031
{
3132
_logger.CreateLogger(nameof(OrderStatusChangedToPaidDomainEventHandler))
32-
.LogTrace($"Order with Id: {orderStatusChangedToPaidDomainEvent.OrderId} has been successfully updated with " +
33-
$"a status order id: {OrderStatus.Paid.Id}");
33+
.LogTrace($"Order with Id: {orderStatusChangedToPaidDomainEvent.OrderId} has been successfully updated with " +
34+
$"a status order id: {OrderStatus.Paid.Id}");
3435

3536
var orderStockList = orderStatusChangedToPaidDomainEvent.OrderItems
3637
.Select(orderItem => new OrderStockItem(orderItem.ProductId, orderItem.GetUnits()));

src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderStartedEvent/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44
using Microsoft.Extensions.Logging;
55
using Ordering.Domain.Events;
66
using System;
7+
using System.Threading;
78
using System.Threading.Tasks;
89

910
namespace Ordering.API.Application.DomainEventHandlers.OrderStartedEvent
1011
{
1112
public class ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler
12-
: IAsyncNotificationHandler<OrderStartedDomainEvent>
13+
: INotificationHandler<OrderStartedDomainEvent>
1314
{
1415
private readonly ILoggerFactory _logger;
1516
private readonly IBuyerRepository _buyerRepository;
@@ -22,7 +23,7 @@ public ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler(ILoggerFact
2223
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
2324
}
2425

25-
public async Task Handle(OrderStartedDomainEvent orderStartedEvent)
26+
public async Task Handle(OrderStartedDomainEvent orderStartedEvent, CancellationToken cancellationToken)
2627
{
2728
var cardTypeId = (orderStartedEvent.CardTypeId != 0) ? orderStartedEvent.CardTypeId : 1;
2829
var buyer = await _buyerRepository.FindAsync(orderStartedEvent.UserId);

0 commit comments

Comments
 (0)