Browse Source

Added event handles missing current tenant.

pull/49/head
gdlcf88 7 years ago
parent
commit
c27d296d6a
  1. 6
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderPaymentCompletedEventHandler.cs
  2. 9
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderPaymentCreatedEventHandler.cs
  3. 4
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/OrderCreatedEventHandler.cs

6
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderPaymentCompletedEventHandler.cs

@ -3,6 +3,7 @@ using System.Threading.Tasks;
using EasyAbp.EShop.Payments.Payments; using EasyAbp.EShop.Payments.Payments;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Entities.Events.Distributed; using Volo.Abp.Domain.Entities.Events.Distributed;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Timing; using Volo.Abp.Timing;
using Volo.Abp.Uow; using Volo.Abp.Uow;
@ -11,13 +12,16 @@ namespace EasyAbp.EShop.Orders.Orders
public class OrderPaymentCompletedEventHandler : IOrderPaymentCompletedEventHandler, ITransientDependency public class OrderPaymentCompletedEventHandler : IOrderPaymentCompletedEventHandler, ITransientDependency
{ {
private readonly IClock _clock; private readonly IClock _clock;
private readonly ICurrentTenant _currentTenant;
private readonly IOrderRepository _orderRepository; private readonly IOrderRepository _orderRepository;
public OrderPaymentCompletedEventHandler( public OrderPaymentCompletedEventHandler(
IClock clock, IClock clock,
ICurrentTenant currentTenant,
IOrderRepository orderRepository) IOrderRepository orderRepository)
{ {
_clock = clock; _clock = clock;
_currentTenant = currentTenant;
_orderRepository = orderRepository; _orderRepository = orderRepository;
} }
@ -29,6 +33,8 @@ namespace EasyAbp.EShop.Orders.Orders
return; return;
} }
using var currentTenant = _currentTenant.Change(eventData.Entity.TenantId);
foreach (var item in eventData.Entity.PaymentItems.Where(item => item.ItemType == "EasyAbpEShopOrder")) foreach (var item in eventData.Entity.PaymentItems.Where(item => item.ItemType == "EasyAbpEShopOrder"))
{ {
var order = await _orderRepository.FindAsync(item.ItemKey); var order = await _orderRepository.FindAsync(item.ItemKey);

9
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderPaymentCreatedEventHandler.cs

@ -3,22 +3,29 @@ using System.Threading.Tasks;
using EasyAbp.EShop.Payments.Payments; using EasyAbp.EShop.Payments.Payments;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Entities.Events.Distributed; using Volo.Abp.Domain.Entities.Events.Distributed;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Uow; using Volo.Abp.Uow;
namespace EasyAbp.EShop.Orders.Orders namespace EasyAbp.EShop.Orders.Orders
{ {
public class OrderPaymentCreatedEventHandler : IOrderPaymentCreatedEventHandler, ITransientDependency public class OrderPaymentCreatedEventHandler : IOrderPaymentCreatedEventHandler, ITransientDependency
{ {
private readonly ICurrentTenant _currentTenant;
private readonly IOrderRepository _orderRepository; private readonly IOrderRepository _orderRepository;
public OrderPaymentCreatedEventHandler(IOrderRepository orderRepository) public OrderPaymentCreatedEventHandler(
ICurrentTenant currentTenant,
IOrderRepository orderRepository)
{ {
_currentTenant = currentTenant;
_orderRepository = orderRepository; _orderRepository = orderRepository;
} }
[UnitOfWork(true)] [UnitOfWork(true)]
public virtual async Task HandleEventAsync(EntityCreatedEto<PaymentEto> eventData) public virtual async Task HandleEventAsync(EntityCreatedEto<PaymentEto> eventData)
{ {
using var currentTenant = _currentTenant.Change(eventData.Entity.TenantId);
foreach (var item in eventData.Entity.PaymentItems.Where(item => item.ItemType == "EasyAbpEShopOrder")) foreach (var item in eventData.Entity.PaymentItems.Where(item => item.ItemType == "EasyAbpEShopOrder"))
{ {
var order = await _orderRepository.FindAsync(item.ItemKey); var order = await _orderRepository.FindAsync(item.ItemKey);

4
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/OrderCreatedEventHandler.cs

@ -55,7 +55,7 @@ namespace EasyAbp.EShop.Products.Products
orderLine.Quantity)) orderLine.Quantity))
{ {
await _distributedEventBus.PublishAsync(new ProductInventoryReductionAfterOrderPlacedResultEto await _distributedEventBus.PublishAsync(new ProductInventoryReductionAfterOrderPlacedResultEto
{OrderId = eventData.Entity.Id, IsSuccess = false}); {TenantId = eventData.Entity.TenantId, OrderId = eventData.Entity.Id, IsSuccess = false});
return; return;
} }
@ -75,7 +75,7 @@ namespace EasyAbp.EShop.Products.Products
} }
await _distributedEventBus.PublishAsync(new ProductInventoryReductionAfterOrderPlacedResultEto await _distributedEventBus.PublishAsync(new ProductInventoryReductionAfterOrderPlacedResultEto
{OrderId = eventData.Entity.Id, IsSuccess = true}); {TenantId = eventData.Entity.TenantId, OrderId = eventData.Entity.Id, IsSuccess = true});
} }
} }
} }

Loading…
Cancel
Save