From 4f839b8678f17a1dbe655b51245a790b94a78ef8 Mon Sep 17 00:00:00 2001 From: gdlcf88 Date: Tue, 8 Sep 2020 19:56:57 +0800 Subject: [PATCH] Add CompleteOrderEto --- .../EShop/Orders/Orders/CompleteOrderEto.cs | 13 +++++++ .../Orders/CompleteOrderEventHandler.cs | 35 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/CompleteOrderEto.cs create mode 100644 modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/CompleteOrderEventHandler.cs diff --git a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/CompleteOrderEto.cs b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/CompleteOrderEto.cs new file mode 100644 index 00000000..eaa86d46 --- /dev/null +++ b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/CompleteOrderEto.cs @@ -0,0 +1,13 @@ +using System; +using Volo.Abp.MultiTenancy; + +namespace EasyAbp.EShop.Orders.Orders +{ + [Serializable] + public class CompleteOrderEto : IMultiTenant + { + public Guid? TenantId { get; set; } + + public Guid OrderId { get; set; } + } +} \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/CompleteOrderEventHandler.cs b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/CompleteOrderEventHandler.cs new file mode 100644 index 00000000..084b971b --- /dev/null +++ b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/CompleteOrderEventHandler.cs @@ -0,0 +1,35 @@ +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; +using Volo.Abp.EventBus.Distributed; +using Volo.Abp.MultiTenancy; +using Volo.Abp.Uow; + +namespace EasyAbp.EShop.Orders.Orders +{ + public class CompleteOrderEventHandler : IDistributedEventHandler, ITransientDependency + { + private readonly ICurrentTenant _currentTenant; + private readonly IOrderManager _orderManager; + private readonly IOrderRepository _orderRepository; + + public CompleteOrderEventHandler( + ICurrentTenant currentTenant, + IOrderManager orderManager, + IOrderRepository orderRepository) + { + _currentTenant = currentTenant; + _orderManager = orderManager; + _orderRepository = orderRepository; + } + + [UnitOfWork(true)] + public virtual async Task HandleEventAsync(CompleteOrderEto eventData) + { + using var currentTenant = _currentTenant.Change(eventData.TenantId); + + var order = await _orderRepository.GetAsync(eventData.OrderId); + + await _orderManager.CompleteAsync(order); + } + } +} \ No newline at end of file