Browse Source

Add orderExtraProperties param to IPurchasableCheckManager.CheckAsync()

pull/87/head v0.4.5
gdlcf88 6 years ago
parent
commit
68664c3871
  1. 2
      common.props
  2. 3
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/BasicPurchasableCheckProvider.cs
  3. 3
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/IPurchasableCheckManager.cs
  4. 3
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/IPurchasableCheckProvider.cs
  5. 3
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/NewOrderGenerator.cs
  6. 4
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/OrderAppService.cs
  7. 7
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/PurchasableCheckManager.cs

2
common.props

@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Version>0.4.4</Version>
<Version>0.4.5</Version>
<NoWarn>$(NoWarn);CS1591</NoWarn>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>EasyAbp Team</Authors>

3
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/BasicPurchasableCheckProvider.cs

@ -11,7 +11,8 @@ namespace EasyAbp.EShop.Orders.Orders
{
public class BasicPurchasableCheckProvider : IPurchasableCheckProvider, ITransientDependency
{
public async Task CheckAsync(CreateOrderDto input, Dictionary<Guid, ProductDto> productDict)
public virtual async Task CheckAsync(CreateOrderDto input, Dictionary<Guid, ProductDto> productDict,
Dictionary<string, object> orderExtraProperties)
{
await CheckProductsPublishedAsync(input, productDict);

3
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/IPurchasableCheckManager.cs

@ -8,6 +8,7 @@ namespace EasyAbp.EShop.Orders.Orders
{
public interface IPurchasableCheckManager
{
Task CheckAsync(CreateOrderDto input, Dictionary<Guid, ProductDto> productDict);
Task CheckAsync(CreateOrderDto input, Dictionary<Guid, ProductDto> productDict,
Dictionary<string, object> orderExtraProperties);
}
}

3
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/IPurchasableCheckProvider.cs

@ -8,6 +8,7 @@ namespace EasyAbp.EShop.Orders.Orders
{
public interface IPurchasableCheckProvider
{
Task CheckAsync(CreateOrderDto input, Dictionary<Guid, ProductDto> productDict);
Task CheckAsync(CreateOrderDto input, Dictionary<Guid, ProductDto> productDict,
Dictionary<string, object> orderExtraProperties);
}
}

3
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/NewOrderGenerator.cs

@ -7,6 +7,7 @@ using EasyAbp.EShop.Orders.Orders.Dtos;
using EasyAbp.EShop.Products.ProductInventories;
using EasyAbp.EShop.Products.Products;
using EasyAbp.EShop.Products.Products.Dtos;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Guids;
using Volo.Abp.Json;
@ -62,7 +63,7 @@ namespace EasyAbp.EShop.Orders.Orders
foreach (var orderExtraProperty in orderExtraProperties)
{
order.ExtraProperties.Add(orderExtraProperty.Key, orderExtraProperty.Value);
order.SetProperty(orderExtraProperty.Key, orderExtraProperty.Value);
}
order.SetOrderLines(orderLines);

4
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/OrderAppService.cs

@ -103,10 +103,10 @@ namespace EasyAbp.EShop.Orders.Orders
var productDict = await GetProductDictionaryAsync(input.OrderLines.Select(dto => dto.ProductId).ToList(),
input.StoreId);
await _purchasableCheckManager.CheckAsync(input, productDict);
var orderExtraProperties = new Dictionary<string, object>();
await _purchasableCheckManager.CheckAsync(input, productDict, orderExtraProperties);
var order = await _newOrderGenerator.GenerateAsync(input, productDict, orderExtraProperties);
await _orderDiscountManager.DiscountAsync(order, input.ExtraProperties);

7
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/PurchasableCheckManager.cs

@ -16,14 +16,15 @@ namespace EasyAbp.EShop.Orders.Orders
{
_serviceProvider = serviceProvider;
}
public async Task CheckAsync(CreateOrderDto input, Dictionary<Guid, ProductDto> productDict)
public async Task CheckAsync(CreateOrderDto input, Dictionary<Guid, ProductDto> productDict,
Dictionary<string, object> orderExtraProperties)
{
var providers = _serviceProvider.GetServices<IPurchasableCheckProvider>();
foreach (var provider in providers)
{
await provider.CheckAsync(input, productDict);
await provider.CheckAsync(input, productDict, orderExtraProperties);
}
}
}

Loading…
Cancel
Save