Browse Source

Merge pull request #96 from RayMMond/ExtensibleDtos

Configure extensible dtos for all modules
pull/103/head
Super 6 years ago
committed by GitHub
parent
commit
4db287e7d4
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/CreateOrderDto.cs
  2. 6
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/CreateOrderLineDto.cs
  3. 1
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/GetOrderListDto.cs
  4. 1
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/OrderDto.cs
  5. 4
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/OrderLineDto.cs
  6. 3
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/IOrder.cs
  7. 3
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/IOrderLine.cs
  8. 2
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/OrderEto.cs
  9. 3
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/OrderLineEto.cs
  10. 13
      modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderLine.cs
  11. 2
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp.EShop.Payments.Application.Contracts.csproj
  12. 8
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/Dtos/CreatePaymentDto.cs
  13. 1
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/Dtos/GetPaymentListDto.cs
  14. 1
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/Dtos/PaymentDto.cs
  15. 1
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/Dtos/PaymentItemDto.cs
  16. 8
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Refunds/Dtos/CreateEShopRefundInput.cs
  17. 4
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Refunds/Dtos/CreateEShopRefundItemInput.cs
  18. 1
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Refunds/Dtos/GetRefundListDto.cs
  19. 3
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Refunds/Dtos/RefundDto.cs
  20. 1
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Refunds/Dtos/RefundItemDto.cs
  21. 2
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp.EShop.Payments.Domain.Shared.csproj
  22. 2
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/Payments/EShopPaymentEto.cs
  23. 2
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/Payments/EShopPaymentItemEto.cs
  24. 5
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/Refunds/EShopRefundCompletedEto.cs
  25. 2
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/Refunds/EShopRefundEto.cs
  26. 2
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/Refunds/EShopRefundItemEto.cs
  27. 1
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/Refunds/OrderLineRefundInfoModel.cs
  28. 2
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp/EShop/Payments/Payments/PaymentItem.cs
  29. 2
      modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp/EShop/Payments/Refunds/RefundItem.cs
  30. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Categories/Dtos/CategoryDto.cs
  31. 4
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Categories/Dtos/CreateUpdateCategoryDto.cs
  32. 4
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Categories/Dtos/GetCategoryListDto.cs
  33. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductCategories/Dtos/GetProductCategoryListDto.cs
  34. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductCategories/Dtos/ProductCategoryDto.cs
  35. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductDetailHistories/Dtos/GetProductDetailHistoryListDto.cs
  36. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductDetailHistories/Dtos/ProductDetailHistoryDto.cs
  37. 4
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductDetails/Dtos/CreateUpdateProductDetailDto.cs
  38. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductDetails/Dtos/ProductDetailDto.cs
  39. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductHistories/Dtos/GetProductHistoryListDto.cs
  40. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductHistories/Dtos/ProductHistoryDto.cs
  41. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductInventories/Dtos/ProductInventoryDto.cs
  42. 4
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductInventories/Dtos/UpdateProductInventoryDto.cs
  43. 15
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateProductSkuDto.cs
  44. 7
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateUpdateProductAttributeDto.cs
  45. 7
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateUpdateProductAttributeOptionDto.cs
  46. 8
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateUpdateProductDto.cs
  47. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/GetProductListDto.cs
  48. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductAttributeDto.cs
  49. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductAttributeOptionDto.cs
  50. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductDto.cs
  51. 5
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductSkuDto.cs
  52. 11
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/UpdateProductSkuDto.cs
  53. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/ProductInventories/ProductInventoryChangedEto.cs
  54. 4
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/IProductAttribute.cs
  55. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/IProductAttributeOption.cs
  56. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/ProductAttributeEto.cs
  57. 4
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/ProductAttributeOptionEto.cs
  58. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/ProductEto.cs
  59. 1
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/ProductSkuEto.cs
  60. 8
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductAttribute.cs
  61. 13
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductAttributeOption.cs
  62. 14
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/ProductsWebAutoMapperProfile.cs
  63. 4
      modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/StoreOwners/Dtos/CreateUpdateStoreOwnerDto.cs
  64. 1
      modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/StoreOwners/Dtos/GetStoreOwnerListDto.cs
  65. 1
      modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/StoreOwners/Dtos/StoreOwnerDto.cs
  66. 4
      modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/Stores/Dtos/CreateUpdateStoreDto.cs
  67. 1
      modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/Stores/Dtos/StoreDto.cs
  68. 4
      modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/Transactions/Dtos/CreateUpdateTransactionDto.cs
  69. 2
      modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/Transactions/Dtos/TransactionDto.cs
  70. 11
      modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Web/StoresWebAutoMapperProfile.cs
  71. 2
      plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Application.Contracts/EasyAbp/EShop/Plugins/Baskets/BasketItems/Dtos/BasketItemDto.cs
  72. 7
      plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Application.Contracts/EasyAbp/EShop/Plugins/Baskets/BasketItems/Dtos/CreateBasketItemDto.cs
  73. 1
      plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Application.Contracts/EasyAbp/EShop/Plugins/Baskets/BasketItems/Dtos/GetBasketItemListDto.cs
  74. 7
      plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Application.Contracts/EasyAbp/EShop/Plugins/Baskets/BasketItems/Dtos/UpdateBasketItemDto.cs
  75. 7
      plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/BasketsWebAutoMapperProfile.cs
  76. 6
      samples/EShopSample/aspnet-core/src/EShopSample.Application.Contracts/EShopSample.Application.Contracts.csproj
  77. 6
      samples/EShopSample/aspnet-core/src/EShopSample.Application/EShopSample.Application.csproj
  78. 6
      samples/EShopSample/aspnet-core/src/EShopSample.Domain.Shared/EShopSample.Domain.Shared.csproj
  79. 6
      samples/EShopSample/aspnet-core/src/EShopSample.Domain/EShopSample.Domain.csproj
  80. 4249
      samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/Migrations/20200905205854_AddedExtraPropertiesToSomeEntities.Designer.cs
  81. 40
      samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/Migrations/20200905205854_AddedExtraPropertiesToSomeEntities.cs
  82. 14
      samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/Migrations/EShopSampleMigrationsDbContextModelSnapshot.cs
  83. 6
      samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore/EShopSample.EntityFrameworkCore.csproj
  84. 6
      samples/EShopSample/aspnet-core/src/EShopSample.HttpApi.Client/EShopSample.HttpApi.Client.csproj
  85. 6
      samples/EShopSample/aspnet-core/src/EShopSample.HttpApi/EShopSample.HttpApi.csproj
  86. 6
      samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSample.Web.csproj

12
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/CreateOrderDto.cs

@ -4,11 +4,12 @@ using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using EasyAbp.EShop.Stores.Stores; using EasyAbp.EShop.Stores.Stores;
using Volo.Abp.Data; using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Orders.Orders.Dtos namespace EasyAbp.EShop.Orders.Orders.Dtos
{ {
public class CreateOrderDto : IHasExtraProperties, IValidatableObject, IMultiStore [Serializable]
public class CreateOrderDto : ExtensibleObject, IMultiStore
{ {
[DisplayName("OrderStoreId")] [DisplayName("OrderStoreId")]
public Guid StoreId { get; set; } public Guid StoreId { get; set; }
@ -18,12 +19,11 @@ namespace EasyAbp.EShop.Orders.Orders.Dtos
[DisplayName("OrderLine")] [DisplayName("OrderLine")]
public List<CreateOrderLineDto> OrderLines { get; set; } public List<CreateOrderLineDto> OrderLines { get; set; }
[DisplayName("OrderExtraProperties")]
public Dictionary<string, object> ExtraProperties { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) public override IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{ {
base.Validate(validationContext);
if (OrderLines.Count == 0) if (OrderLines.Count == 0)
{ {
yield return new ValidationResult( yield return new ValidationResult(

6
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/CreateOrderLineDto.cs

@ -1,11 +1,11 @@
using System; using System;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using Volo.Abp.Data; using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Orders.Orders.Dtos namespace EasyAbp.EShop.Orders.Orders.Dtos
{ {
public class CreateOrderLineDto [Serializable]
public class CreateOrderLineDto : ExtensibleObject
{ {
[DisplayName("OrderLineProductId")] [DisplayName("OrderLineProductId")]
public Guid ProductId { get; set; } public Guid ProductId { get; set; }

1
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/GetOrderListDto.cs

@ -3,6 +3,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Orders.Orders.Dtos namespace EasyAbp.EShop.Orders.Orders.Dtos
{ {
[Serializable]
public class GetOrderListDto : PagedAndSortedResultRequestDto public class GetOrderListDto : PagedAndSortedResultRequestDto
{ {
public Guid? StoreId { get; set; } public Guid? StoreId { get; set; }

1
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/OrderDto.cs

@ -4,6 +4,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Orders.Orders.Dtos namespace EasyAbp.EShop.Orders.Orders.Dtos
{ {
[Serializable]
public class OrderDto : ExtensibleFullAuditedEntityDto<Guid>, IOrder public class OrderDto : ExtensibleFullAuditedEntityDto<Guid>, IOrder
{ {
public Guid StoreId { get; set; } public Guid StoreId { get; set; }

4
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/OrderLineDto.cs

@ -1,8 +1,10 @@
using System; using System;
using System.Collections.Generic;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Orders.Orders.Dtos namespace EasyAbp.EShop.Orders.Orders.Dtos
{ {
[Serializable]
public class OrderLineDto : FullAuditedEntityDto<Guid>, IOrderLine public class OrderLineDto : FullAuditedEntityDto<Guid>, IOrderLine
{ {
public Guid ProductId { get; set; } public Guid ProductId { get; set; }
@ -42,5 +44,7 @@ namespace EasyAbp.EShop.Orders.Orders.Dtos
public int RefundedQuantity { get; set; } public int RefundedQuantity { get; set; }
public decimal RefundAmount { get; set; } public decimal RefundAmount { get; set; }
public Dictionary<string, object> ExtraProperties { get; set; }
} }
} }

3
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/IOrder.cs

@ -1,9 +1,10 @@
using System; using System;
using EasyAbp.EShop.Stores.Stores; using EasyAbp.EShop.Stores.Stores;
using Volo.Abp.Data;
namespace EasyAbp.EShop.Orders.Orders namespace EasyAbp.EShop.Orders.Orders
{ {
public interface IOrder : IMultiStore public interface IOrder : IMultiStore, IHasExtraProperties
{ {
string OrderNumber { get; } string OrderNumber { get; }

3
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/IOrderLine.cs

@ -1,8 +1,9 @@
using System; using System;
using Volo.Abp.Data;
namespace EasyAbp.EShop.Orders.Orders namespace EasyAbp.EShop.Orders.Orders
{ {
public interface IOrderLine public interface IOrderLine : IHasExtraProperties
{ {
Guid ProductId { get; } Guid ProductId { get; }

2
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/OrderEto.cs

@ -50,5 +50,7 @@ namespace EasyAbp.EShop.Orders.Orders
public DateTime? ReducedInventoryAfterPaymentTime { get; set; } public DateTime? ReducedInventoryAfterPaymentTime { get; set; }
public List<OrderLineEto> OrderLines { get; set; } public List<OrderLineEto> OrderLines { get; set; }
public Dictionary<string, object> ExtraProperties { get; set; }
} }
} }

3
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain.Shared/EasyAbp/EShop/Orders/Orders/OrderLineEto.cs

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
namespace EasyAbp.EShop.Orders.Orders namespace EasyAbp.EShop.Orders.Orders
{ {
@ -44,5 +45,7 @@ namespace EasyAbp.EShop.Orders.Orders
public int RefundedQuantity { get; set; } public int RefundedQuantity { get; set; }
public decimal RefundAmount { get; set; } public decimal RefundAmount { get; set; }
public Dictionary<string, object> ExtraProperties { get; set; }
} }
} }

13
modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/OrderLine.cs

@ -1,5 +1,7 @@
using System; using System;
using System.Collections.Generic;
using JetBrains.Annotations; using JetBrains.Annotations;
using Volo.Abp.Data;
using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.Domain.Entities.Auditing;
namespace EasyAbp.EShop.Orders.Orders namespace EasyAbp.EShop.Orders.Orders
@ -51,8 +53,14 @@ namespace EasyAbp.EShop.Orders.Orders
public virtual int RefundedQuantity { get; protected set; } public virtual int RefundedQuantity { get; protected set; }
public virtual decimal RefundAmount { get; protected set; } public virtual decimal RefundAmount { get; protected set; }
public virtual Dictionary<string, object> ExtraProperties { get; protected set; }
protected OrderLine() {} protected OrderLine()
{
ExtraProperties = new Dictionary<string, object>();
this.SetDefaultsForExtraProperties();
}
public OrderLine( public OrderLine(
Guid id, Guid id,
@ -94,6 +102,9 @@ namespace EasyAbp.EShop.Orders.Orders
RefundedQuantity = 0; RefundedQuantity = 0;
RefundAmount = 0; RefundAmount = 0;
ExtraProperties = new Dictionary<string, object>();
this.SetDefaultsForExtraProperties();
} }
internal void Refund(int quantity, decimal amount) internal void Refund(int quantity, decimal amount)

2
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp.EShop.Payments.Application.Contracts.csproj

@ -8,7 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.Domain.Shared" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Domain.Shared" Version="1.2.0" />
<PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="3.0.5" />
<PackageReference Include="Volo.Abp.Authorization" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Authorization" Version="3.0.5" />
<ProjectReference Include="..\EasyAbp.EShop.Payments.Domain.Shared\EasyAbp.EShop.Payments.Domain.Shared.csproj" /> <ProjectReference Include="..\EasyAbp.EShop.Payments.Domain.Shared\EasyAbp.EShop.Payments.Domain.Shared.csproj" />

8
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/Dtos/CreatePaymentDto.cs

@ -2,17 +2,21 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Payments.Payments.Dtos namespace EasyAbp.EShop.Payments.Payments.Dtos
{ {
public class CreatePaymentDto : IValidatableObject [Serializable]
public class CreatePaymentDto : ExtensibleObject
{ {
public string PaymentMethod { get; set; } public string PaymentMethod { get; set; }
public List<Guid> OrderIds { get; set; } public List<Guid> OrderIds { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) public override IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{ {
base.Validate(validationContext);
if (OrderIds.Count == 0) if (OrderIds.Count == 0)
{ {
yield return new ValidationResult( yield return new ValidationResult(

1
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/Dtos/GetPaymentListDto.cs

@ -3,6 +3,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Payments.Payments.Dtos namespace EasyAbp.EShop.Payments.Payments.Dtos
{ {
[Serializable]
public class GetPaymentListDto : PagedAndSortedResultRequestDto public class GetPaymentListDto : PagedAndSortedResultRequestDto
{ {
public Guid? UserId { get; set; } public Guid? UserId { get; set; }

1
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/Dtos/PaymentDto.cs

@ -5,6 +5,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Payments.Payments.Dtos namespace EasyAbp.EShop.Payments.Payments.Dtos
{ {
[Serializable]
public class PaymentDto : ExtensibleFullAuditedEntityDto<Guid>, IPayment public class PaymentDto : ExtensibleFullAuditedEntityDto<Guid>, IPayment
{ {
#region Base properties #region Base properties

1
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Payments/Dtos/PaymentItemDto.cs

@ -5,6 +5,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Payments.Payments.Dtos namespace EasyAbp.EShop.Payments.Payments.Dtos
{ {
[Serializable]
public class PaymentItemDto : ExtensibleFullAuditedEntityDto<Guid>, IPaymentItem public class PaymentItemDto : ExtensibleFullAuditedEntityDto<Guid>, IPaymentItem
{ {
#region Base properties #region Base properties

8
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Refunds/Dtos/CreateEShopRefundInput.cs

@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using JetBrains.Annotations; using JetBrains.Annotations;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Payments.Refunds.Dtos namespace EasyAbp.EShop.Payments.Refunds.Dtos
{ {
public class CreateEShopRefundInput : IValidatableObject [Serializable]
public class CreateEShopRefundInput : ExtensibleObject
{ {
public Guid PaymentId { get; set; } public Guid PaymentId { get; set; }
@ -21,8 +23,10 @@ namespace EasyAbp.EShop.Payments.Refunds.Dtos
public List<CreateEShopRefundItemInput> RefundItems { get; set; } = new List<CreateEShopRefundItemInput>(); public List<CreateEShopRefundItemInput> RefundItems { get; set; } = new List<CreateEShopRefundItemInput>();
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) public override IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{ {
base.Validate(validationContext);
if (RefundItems.IsNullOrEmpty()) if (RefundItems.IsNullOrEmpty())
{ {
yield return new ValidationResult( yield return new ValidationResult(

4
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Refunds/Dtos/CreateEShopRefundItemInput.cs

@ -1,10 +1,12 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using JetBrains.Annotations; using JetBrains.Annotations;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Payments.Refunds.Dtos namespace EasyAbp.EShop.Payments.Refunds.Dtos
{ {
public class CreateEShopRefundItemInput [Serializable]
public class CreateEShopRefundItemInput : ExtensibleObject
{ {
public Guid OrderId { get; set; } public Guid OrderId { get; set; }

1
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Refunds/Dtos/GetRefundListDto.cs

@ -3,6 +3,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Payments.Refunds.Dtos namespace EasyAbp.EShop.Payments.Refunds.Dtos
{ {
[Serializable]
public class GetRefundListDto : PagedAndSortedResultRequestDto public class GetRefundListDto : PagedAndSortedResultRequestDto
{ {
public Guid? UserId { get; set; } public Guid? UserId { get; set; }

3
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Refunds/Dtos/RefundDto.cs

@ -5,7 +5,8 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Payments.Refunds.Dtos namespace EasyAbp.EShop.Payments.Refunds.Dtos
{ {
public class RefundDto : FullAuditedEntityDto<Guid>, IRefund [Serializable]
public class RefundDto : ExtensibleFullAuditedEntityDto<Guid>, IRefund
{ {
#region Base properties #region Base properties

1
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application.Contracts/EasyAbp/EShop/Payments/Refunds/Dtos/RefundItemDto.cs

@ -5,6 +5,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Payments.Refunds.Dtos namespace EasyAbp.EShop.Payments.Refunds.Dtos
{ {
[Serializable]
public class RefundItemDto : ExtensibleFullAuditedEntityDto<Guid>, IRefundItem public class RefundItemDto : ExtensibleFullAuditedEntityDto<Guid>, IRefundItem
{ {
#region Base properties #region Base properties

2
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp.EShop.Payments.Domain.Shared.csproj

@ -10,7 +10,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Volo.Abp.Validation" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Validation" Version="3.0.5" />
<PackageReference Include="EasyAbp.PaymentService.Domain.Shared" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Domain.Shared" Version="1.2.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

2
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/Payments/EShopPaymentEto.cs

@ -7,7 +7,7 @@ using Volo.Abp.MultiTenancy;
namespace EasyAbp.EShop.Payments.Payments namespace EasyAbp.EShop.Payments.Payments
{ {
[Serializable] [Serializable]
public class EShopPaymentEto : IPayment, IMultiTenant, IHasExtraProperties public class EShopPaymentEto : IPayment, IMultiTenant
{ {
#region Base properties #region Base properties

2
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/Payments/EShopPaymentItemEto.cs

@ -6,7 +6,7 @@ using Volo.Abp.Data;
namespace EasyAbp.EShop.Payments.Payments namespace EasyAbp.EShop.Payments.Payments
{ {
[Serializable] [Serializable]
public class EShopPaymentItemEto : IPaymentItem, IHasExtraProperties public class EShopPaymentItemEto : IPaymentItem
{ {
#region Base properties #region Base properties

5
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/Refunds/EShopRefundCompletedEto.cs

@ -1,5 +1,8 @@
namespace EasyAbp.EShop.Payments.Refunds using System;
namespace EasyAbp.EShop.Payments.Refunds
{ {
[Serializable]
public class EShopRefundCompletedEto public class EShopRefundCompletedEto
{ {
public EShopRefundEto Refund { get; set; } public EShopRefundEto Refund { get; set; }

2
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/Refunds/EShopRefundEto.cs

@ -7,7 +7,7 @@ using Volo.Abp.MultiTenancy;
namespace EasyAbp.EShop.Payments.Refunds namespace EasyAbp.EShop.Payments.Refunds
{ {
[Serializable] [Serializable]
public class EShopRefundEto : IRefund, IMultiTenant, IHasExtraProperties public class EShopRefundEto : IRefund, IMultiTenant
{ {
#region Base properties #region Base properties

2
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/Refunds/EShopRefundItemEto.cs

@ -6,7 +6,7 @@ using Volo.Abp.Data;
namespace EasyAbp.EShop.Payments.Refunds namespace EasyAbp.EShop.Payments.Refunds
{ {
[Serializable] [Serializable]
public class EShopRefundItemEto : IRefundItem, IHasExtraProperties public class EShopRefundItemEto : IRefundItem
{ {
#region Base properties #region Base properties

1
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain.Shared/EasyAbp/EShop/Payments/Refunds/OrderLineRefundInfoModel.cs

@ -2,6 +2,7 @@
namespace EasyAbp.EShop.Payments.Refunds namespace EasyAbp.EShop.Payments.Refunds
{ {
[Serializable]
public class OrderLineRefundInfoModel public class OrderLineRefundInfoModel
{ {
public Guid OrderLineId { get; set; } public Guid OrderLineId { get; set; }

2
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp/EShop/Payments/Payments/PaymentItem.cs

@ -8,7 +8,7 @@ using Volo.Abp.Domain.Entities.Auditing;
namespace EasyAbp.EShop.Payments.Payments namespace EasyAbp.EShop.Payments.Payments
{ {
public class PaymentItem : FullAuditedEntity<Guid>, IPaymentItem, IHasExtraProperties, IMultiStore public class PaymentItem : FullAuditedEntity<Guid>, IPaymentItem, IMultiStore
{ {
#region Base properties #region Base properties

2
modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp/EShop/Payments/Refunds/RefundItem.cs

@ -7,7 +7,7 @@ using Volo.Abp.Domain.Entities.Auditing;
namespace EasyAbp.EShop.Payments.Refunds namespace EasyAbp.EShop.Payments.Refunds
{ {
public class RefundItem : FullAuditedEntity<Guid>, IRefundItem, IMultiStore, IHasExtraProperties public class RefundItem : FullAuditedEntity<Guid>, IRefundItem, IMultiStore
{ {
#region Base properties #region Base properties

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Categories/Dtos/CategoryDto.cs

@ -5,7 +5,8 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Categories.Dtos namespace EasyAbp.EShop.Products.Categories.Dtos
{ {
public class CategoryDto : FullAuditedEntityDto<Guid> [Serializable]
public class CategoryDto : ExtensibleFullAuditedEntityDto<Guid>
{ {
public string UniqueName { get; set; } public string UniqueName { get; set; }

4
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Categories/Dtos/CreateUpdateCategoryDto.cs

@ -1,10 +1,12 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Products.Categories.Dtos namespace EasyAbp.EShop.Products.Categories.Dtos
{ {
public class CreateUpdateCategoryDto [Serializable]
public class CreateUpdateCategoryDto : ExtensibleObject
{ {
[DisplayName("CategoryUniqueName")] [DisplayName("CategoryUniqueName")]
public string UniqueName { get; set; } public string UniqueName { get; set; }

4
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Categories/Dtos/GetCategoryListDto.cs

@ -1,7 +1,9 @@
using Volo.Abp.Application.Dtos; using System;
using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Categories.Dtos namespace EasyAbp.EShop.Products.Categories.Dtos
{ {
[Serializable]
public class GetCategoryListDto : PagedAndSortedResultRequestDto public class GetCategoryListDto : PagedAndSortedResultRequestDto
{ {
public bool ShowHidden { get; set; } public bool ShowHidden { get; set; }

1
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductCategories/Dtos/GetProductCategoryListDto.cs

@ -3,6 +3,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.ProductCategories.Dtos namespace EasyAbp.EShop.Products.ProductCategories.Dtos
{ {
[Serializable]
public class GetProductCategoryListDto : PagedAndSortedResultRequestDto public class GetProductCategoryListDto : PagedAndSortedResultRequestDto
{ {
public Guid? CategoryId { get; set; } public Guid? CategoryId { get; set; }

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductCategories/Dtos/ProductCategoryDto.cs

@ -3,7 +3,8 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.ProductCategories.Dtos namespace EasyAbp.EShop.Products.ProductCategories.Dtos
{ {
public class ProductCategoryDto : AuditedEntityDto<Guid> [Serializable]
public class ProductCategoryDto : ExtensibleAuditedEntityDto<Guid>
{ {
public Guid CategoryId { get; set; } public Guid CategoryId { get; set; }

1
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductDetailHistories/Dtos/GetProductDetailHistoryListDto.cs

@ -3,6 +3,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.ProductDetailHistories.Dtos namespace EasyAbp.EShop.Products.ProductDetailHistories.Dtos
{ {
[Serializable]
public class GetProductDetailHistoryListDto : PagedAndSortedResultRequestDto public class GetProductDetailHistoryListDto : PagedAndSortedResultRequestDto
{ {
public Guid ProductDetailId { get; set; } public Guid ProductDetailId { get; set; }

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductDetailHistories/Dtos/ProductDetailHistoryDto.cs

@ -3,7 +3,8 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.ProductDetailHistories.Dtos namespace EasyAbp.EShop.Products.ProductDetailHistories.Dtos
{ {
public class ProductDetailHistoryDto : EntityDto<Guid> [Serializable]
public class ProductDetailHistoryDto : ExtensibleEntityDto<Guid>
{ {
public Guid ProductDetailId { get; set; } public Guid ProductDetailId { get; set; }

4
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductDetails/Dtos/CreateUpdateProductDetailDto.cs

@ -1,9 +1,11 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Products.ProductDetails.Dtos namespace EasyAbp.EShop.Products.ProductDetails.Dtos
{ {
public class CreateUpdateProductDetailDto [Serializable]
public class CreateUpdateProductDetailDto : ExtensibleObject
{ {
/// <summary> /// <summary>
/// This property is for product management permission checking /// This property is for product management permission checking

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductDetails/Dtos/ProductDetailDto.cs

@ -4,7 +4,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.ProductDetails.Dtos namespace EasyAbp.EShop.Products.ProductDetails.Dtos
{ {
[Serializable] [Serializable]
public class ProductDetailDto : EntityDto<Guid> public class ProductDetailDto : ExtensibleEntityDto<Guid>
{ {
public string Description { get; set; } public string Description { get; set; }
} }

1
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductHistories/Dtos/GetProductHistoryListDto.cs

@ -3,6 +3,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.ProductHistories.Dtos namespace EasyAbp.EShop.Products.ProductHistories.Dtos
{ {
[Serializable]
public class GetProductHistoryListDto : PagedAndSortedResultRequestDto public class GetProductHistoryListDto : PagedAndSortedResultRequestDto
{ {
public Guid ProductId { get; set; } public Guid ProductId { get; set; }

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductHistories/Dtos/ProductHistoryDto.cs

@ -3,7 +3,8 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.ProductHistories.Dtos namespace EasyAbp.EShop.Products.ProductHistories.Dtos
{ {
public class ProductHistoryDto : EntityDto<Guid> [Serializable]
public class ProductHistoryDto : ExtensibleEntityDto<Guid>
{ {
public Guid ProductId { get; set; } public Guid ProductId { get; set; }

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductInventories/Dtos/ProductInventoryDto.cs

@ -4,7 +4,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.ProductInventories.Dtos namespace EasyAbp.EShop.Products.ProductInventories.Dtos
{ {
[Serializable] [Serializable]
public class ProductInventoryDto : FullAuditedEntityDto<Guid> public class ProductInventoryDto : ExtensibleFullAuditedEntityDto<Guid>
{ {
public Guid ProductId { get; set; } public Guid ProductId { get; set; }

4
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductInventories/Dtos/UpdateProductInventoryDto.cs

@ -1,8 +1,10 @@
using System; using System;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Products.ProductInventories.Dtos namespace EasyAbp.EShop.Products.ProductInventories.Dtos
{ {
[Serializable] [Serializable]
public class UpdateProductInventoryDto public class UpdateProductInventoryDto : ExtensibleObject
{ {
public Guid ProductId { get; set; } public Guid ProductId { get; set; }

15
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateProductSkuDto.cs

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace EasyAbp.EShop.Products.Products.Dtos
{
[Serializable]
public class CreateProductSkuDto : UpdateProductSkuDto
{
[Required]
[DisplayName("ProductSkuAttributeOptionIds")]
public List<Guid> AttributeOptionIds { get; set; }
}
}

7
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateUpdateProductAttributeDto.cs

@ -1,10 +1,13 @@
using System.Collections.Generic; using System;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Products.Products.Dtos namespace EasyAbp.EShop.Products.Products.Dtos
{ {
public class CreateUpdateProductAttributeDto [Serializable]
public class CreateUpdateProductAttributeDto : ExtensibleObject
{ {
[Required] [Required]
[DisplayName("ProductAttributeDisplayName")] [DisplayName("ProductAttributeDisplayName")]

7
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateUpdateProductAttributeOptionDto.cs

@ -1,9 +1,12 @@
using System.ComponentModel; using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Products.Products.Dtos namespace EasyAbp.EShop.Products.Products.Dtos
{ {
public class CreateUpdateProductAttributeOptionDto [Serializable]
public class CreateUpdateProductAttributeOptionDto : ExtensibleObject
{ {
[Required] [Required]
[DisplayName("ProductAttributeOptionDisplayName")] [DisplayName("ProductAttributeOptionDisplayName")]

8
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateUpdateProductDto.cs

@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Products.Products.Dtos namespace EasyAbp.EShop.Products.Products.Dtos
{ {
public class CreateUpdateProductDto : IValidatableObject [Serializable]
public class CreateUpdateProductDto : ExtensibleObject
{ {
[DisplayName("ProductProductGroupName")] [DisplayName("ProductProductGroupName")]
public string ProductGroupName { get; set; } public string ProductGroupName { get; set; }
@ -44,8 +46,10 @@ namespace EasyAbp.EShop.Products.Products.Dtos
[DisplayName("ProductIsPublished")] [DisplayName("ProductIsPublished")]
public bool IsPublished { get; set; } public bool IsPublished { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) public override IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{ {
base.Validate(validationContext);
if (ProductAttributes.Select(a => a.DisplayName.Trim()).Distinct().Count() != ProductAttributes.Count) if (ProductAttributes.Select(a => a.DisplayName.Trim()).Distinct().Count() != ProductAttributes.Count)
{ {
yield return new ValidationResult( yield return new ValidationResult(

1
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/GetProductListDto.cs

@ -4,6 +4,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Products.Dtos namespace EasyAbp.EShop.Products.Products.Dtos
{ {
[Serializable]
public class GetProductListDto : PagedAndSortedResultRequestDto public class GetProductListDto : PagedAndSortedResultRequestDto
{ {
[Required] [Required]

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductAttributeDto.cs

@ -5,7 +5,8 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Products.Dtos namespace EasyAbp.EShop.Products.Products.Dtos
{ {
public class ProductAttributeDto : FullAuditedEntityDto<Guid> [Serializable]
public class ProductAttributeDto : ExtensibleFullAuditedEntityDto<Guid>
{ {
[Required] [Required]
public string DisplayName { get; set; } public string DisplayName { get; set; }

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductAttributeOptionDto.cs

@ -4,7 +4,8 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Products.Dtos namespace EasyAbp.EShop.Products.Products.Dtos
{ {
public class ProductAttributeOptionDto : FullAuditedEntityDto<Guid> [Serializable]
public class ProductAttributeOptionDto : ExtensibleFullAuditedEntityDto<Guid>
{ {
[Required] [Required]
public string DisplayName { get; set; } public string DisplayName { get; set; }

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductDto.cs

@ -6,7 +6,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Products.Dtos namespace EasyAbp.EShop.Products.Products.Dtos
{ {
[Serializable] [Serializable]
public class ProductDto : FullAuditedEntityDto<Guid> public class ProductDto : ExtensibleFullAuditedEntityDto<Guid>
{ {
public string ProductGroupName { get; set; } public string ProductGroupName { get; set; }

5
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductSkuDto.cs

@ -5,7 +5,8 @@ using Volo.Abp.Data;
namespace EasyAbp.EShop.Products.Products.Dtos namespace EasyAbp.EShop.Products.Products.Dtos
{ {
public class ProductSkuDto : FullAuditedEntityDto<Guid>, IHasExtraProperties [Serializable]
public class ProductSkuDto : ExtensibleFullAuditedEntityDto<Guid>
{ {
public List<Guid> AttributeOptionIds { get; set; } public List<Guid> AttributeOptionIds { get; set; }
@ -33,7 +34,5 @@ namespace EasyAbp.EShop.Products.Products.Dtos
public string MediaResources { get; set; } public string MediaResources { get; set; }
public Guid? ProductDetailId { get; set; } public Guid? ProductDetailId { get; set; }
public Dictionary<string, object> ExtraProperties { get; set; }
} }
} }

11
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateUpdateProductSkuDto.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/UpdateProductSkuDto.cs

@ -2,10 +2,12 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Products.Products.Dtos namespace EasyAbp.EShop.Products.Products.Dtos
{ {
public class UpdateProductSkuDto [Serializable]
public class UpdateProductSkuDto : ExtensibleObject
{ {
[DisplayName("ProductSkuName")] [DisplayName("ProductSkuName")]
public string Name { get; set; } public string Name { get; set; }
@ -34,11 +36,4 @@ namespace EasyAbp.EShop.Products.Products.Dtos
[DisplayName("ProductSkuProductDetailId")] [DisplayName("ProductSkuProductDetailId")]
public Guid? ProductDetailId { get; set; } public Guid? ProductDetailId { get; set; }
} }
public class CreateProductSkuDto : UpdateProductSkuDto
{
[Required]
[DisplayName("ProductSkuAttributeOptionIds")]
public List<Guid> AttributeOptionIds { get; set; }
}
} }

1
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/ProductInventories/ProductInventoryChangedEto.cs

@ -3,6 +3,7 @@ using Volo.Abp.MultiTenancy;
namespace EasyAbp.EShop.Products.ProductInventories namespace EasyAbp.EShop.Products.ProductInventories
{ {
[Serializable]
public class ProductInventoryChangedEto public class ProductInventoryChangedEto
{ {
public Guid ProductId { get; set; } public Guid ProductId { get; set; }

4
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/IProductAttribute.cs

@ -1,8 +1,8 @@
using System.Collections.Generic; using Volo.Abp.Data;
namespace EasyAbp.EShop.Products.Products namespace EasyAbp.EShop.Products.Products
{ {
public interface IProductAttribute public interface IProductAttribute : IHasExtraProperties
{ {
string DisplayName { get; } string DisplayName { get; }

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/IProductAttributeOption.cs

@ -1,6 +1,8 @@
namespace EasyAbp.EShop.Products.Products using Volo.Abp.Data;
namespace EasyAbp.EShop.Products.Products
{ {
public interface IProductAttributeOption public interface IProductAttributeOption : IHasExtraProperties
{ {
string DisplayName { get; } string DisplayName { get; }

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/ProductAttributeEto.cs

@ -3,6 +3,7 @@ using System.Collections.Generic;
namespace EasyAbp.EShop.Products.Products namespace EasyAbp.EShop.Products.Products
{ {
[Serializable]
public class ProductAttributeEto : IProductAttribute public class ProductAttributeEto : IProductAttribute
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
@ -14,5 +15,7 @@ namespace EasyAbp.EShop.Products.Products
public int DisplayOrder { get; set; } public int DisplayOrder { get; set; }
public ICollection<ProductAttributeOptionEto> ProductAttributeOptions { get; set; } public ICollection<ProductAttributeOptionEto> ProductAttributeOptions { get; set; }
public Dictionary<string, object> ExtraProperties { get; set; }
} }
} }

4
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/ProductAttributeOptionEto.cs

@ -1,7 +1,9 @@
using System; using System;
using System.Collections.Generic;
namespace EasyAbp.EShop.Products.Products namespace EasyAbp.EShop.Products.Products
{ {
[Serializable]
public class ProductAttributeOptionEto : IProductAttributeOption public class ProductAttributeOptionEto : IProductAttributeOption
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
@ -11,5 +13,7 @@ namespace EasyAbp.EShop.Products.Products
public string Description { get; set; } public string Description { get; set; }
public int DisplayOrder { get; set; } public int DisplayOrder { get; set; }
public Dictionary<string, object> ExtraProperties { get; set; }
} }
} }

1
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/ProductEto.cs

@ -3,6 +3,7 @@ using System.Collections.Generic;
namespace EasyAbp.EShop.Products.Products namespace EasyAbp.EShop.Products.Products
{ {
[Serializable]
public class ProductEto : IProduct public class ProductEto : IProduct
{ {
public Guid Id { get; set; } public Guid Id { get; set; }

1
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/ProductSkuEto.cs

@ -3,6 +3,7 @@ using System.Collections.Generic;
namespace EasyAbp.EShop.Products.Products namespace EasyAbp.EShop.Products.Products
{ {
[Serializable]
public class ProductSkuEto : IProductSku public class ProductSkuEto : IProductSku
{ {
public Guid Id { get; set; } public Guid Id { get; set; }

8
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductAttribute.cs

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using JetBrains.Annotations; using JetBrains.Annotations;
using Volo.Abp.Data;
using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.Domain.Entities.Auditing;
namespace EasyAbp.EShop.Products.Products namespace EasyAbp.EShop.Products.Products
@ -15,10 +16,14 @@ namespace EasyAbp.EShop.Products.Products
public virtual int DisplayOrder { get; protected set; } public virtual int DisplayOrder { get; protected set; }
public virtual Dictionary<string, object> ExtraProperties { get; protected set; }
public virtual List<ProductAttributeOption> ProductAttributeOptions { get; protected set; } public virtual List<ProductAttributeOption> ProductAttributeOptions { get; protected set; }
protected ProductAttribute() protected ProductAttribute()
{ {
ExtraProperties = new Dictionary<string, object>();
this.SetDefaultsForExtraProperties();
} }
public ProductAttribute( public ProductAttribute(
@ -32,6 +37,9 @@ namespace EasyAbp.EShop.Products.Products
DisplayOrder = displayOrder; DisplayOrder = displayOrder;
ProductAttributeOptions = new List<ProductAttributeOption>(); ProductAttributeOptions = new List<ProductAttributeOption>();
ExtraProperties = new Dictionary<string, object>();
this.SetDefaultsForExtraProperties();
} }
} }
} }

13
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductAttributeOption.cs

@ -1,5 +1,7 @@
using System; using System;
using System.Collections.Generic;
using JetBrains.Annotations; using JetBrains.Annotations;
using Volo.Abp.Data;
using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.Domain.Entities.Auditing;
namespace EasyAbp.EShop.Products.Products namespace EasyAbp.EShop.Products.Products
@ -14,7 +16,13 @@ namespace EasyAbp.EShop.Products.Products
public virtual int DisplayOrder { get; protected set; } public virtual int DisplayOrder { get; protected set; }
protected ProductAttributeOption() {} public virtual Dictionary<string, object> ExtraProperties { get; protected set; }
protected ProductAttributeOption()
{
ExtraProperties = new Dictionary<string, object>();
this.SetDefaultsForExtraProperties();
}
public ProductAttributeOption( public ProductAttributeOption(
Guid id, Guid id,
@ -25,6 +33,9 @@ namespace EasyAbp.EShop.Products.Products
DisplayName = displayName; DisplayName = displayName;
Description = description; Description = description;
DisplayOrder = displayOrder; DisplayOrder = displayOrder;
ExtraProperties = new Dictionary<string, object>();
this.SetDefaultsForExtraProperties();
} }
} }
} }

14
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Web/ProductsWebAutoMapperProfile.cs

@ -34,6 +34,7 @@ namespace EasyAbp.EShop.Products.Web
.Select(a => a.ProductAttributeOptions.Select(o => o.DisplayName).JoinAsString(",")) .Select(a => a.ProductAttributeOptions.Select(o => o.DisplayName).JoinAsString(","))
.JoinAsString(Environment.NewLine))); .JoinAsString(Environment.NewLine)));
CreateMap<CreateEditProductViewModel, CreateUpdateProductDto>() CreateMap<CreateEditProductViewModel, CreateUpdateProductDto>()
.Ignore(dto => dto.ExtraProperties)
.Ignore(dto => dto.ProductDetailId) .Ignore(dto => dto.ProductDetailId)
.ForSourceMember(model => model.ProductDetail, opt => opt.DoNotValidate()) .ForSourceMember(model => model.ProductDetail, opt => opt.DoNotValidate())
.ForMember(dest => dest.ProductAttributes, .ForMember(dest => dest.ProductAttributes,
@ -49,19 +50,24 @@ namespace EasyAbp.EShop.Products.Web
}))); })));
CreateMap<ProductDetailDto, CreateEditProductDetailViewModel>() CreateMap<ProductDetailDto, CreateEditProductDetailViewModel>()
.Ignore(model => model.StoreId); .Ignore(model => model.StoreId);
CreateMap<CreateEditProductDetailViewModel, CreateUpdateProductDetailDto>(); CreateMap<CreateEditProductDetailViewModel, CreateUpdateProductDetailDto>()
.Ignore(dto => dto.ExtraProperties);
CreateMap<ProductAttributeDto, CreateEditProductAttributeViewModel>(); CreateMap<ProductAttributeDto, CreateEditProductAttributeViewModel>();
CreateMap<CreateEditProductAttributeViewModel, CreateUpdateProductAttributeDto>(); CreateMap<CreateEditProductAttributeViewModel, CreateUpdateProductAttributeDto>()
.Ignore(dto => dto.ExtraProperties);
CreateMap<CreateProductSkuViewModel, CreateProductSkuDto>() CreateMap<CreateProductSkuViewModel, CreateProductSkuDto>()
.Ignore(dto => dto.ExtraProperties)
.ForSourceMember(model => model.Inventory, opt => opt.DoNotValidate()) .ForSourceMember(model => model.Inventory, opt => opt.DoNotValidate())
.Ignore(dto => dto.AttributeOptionIds); .Ignore(dto => dto.AttributeOptionIds);
CreateMap<EditProductSkuViewModel, UpdateProductSkuDto>(); CreateMap<EditProductSkuViewModel, UpdateProductSkuDto>()
.Ignore(dto => dto.ExtraProperties);
CreateMap<ProductSkuDto, EditProductSkuViewModel>() CreateMap<ProductSkuDto, EditProductSkuViewModel>()
.ForSourceMember(dto => dto.AttributeOptionIds, opt => opt.DoNotValidate()) .ForSourceMember(dto => dto.AttributeOptionIds, opt => opt.DoNotValidate())
.ForSourceMember(dto => dto.Inventory, opt => opt.DoNotValidate()) .ForSourceMember(dto => dto.Inventory, opt => opt.DoNotValidate())
.ForSourceMember(dto => dto.Sold, opt => opt.DoNotValidate()); .ForSourceMember(dto => dto.Sold, opt => opt.DoNotValidate());
CreateMap<ProductAttributeOptionDto, CreateEditProductAttributeOptionViewModel>(); CreateMap<ProductAttributeOptionDto, CreateEditProductAttributeOptionViewModel>();
CreateMap<CreateEditProductAttributeOptionViewModel, CreateUpdateProductAttributeOptionDto>(); CreateMap<CreateEditProductAttributeOptionViewModel, CreateUpdateProductAttributeOptionDto>()
.Ignore(dto => dto.ExtraProperties);
CreateMap<CategoryDto, CreateUpdateCategoryDto>(); CreateMap<CategoryDto, CreateUpdateCategoryDto>();
} }
} }

4
modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/StoreOwners/Dtos/CreateUpdateStoreOwnerDto.cs

@ -1,10 +1,12 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using EasyAbp.EShop.Stores.Stores; using EasyAbp.EShop.Stores.Stores;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Stores.StoreOwners.Dtos namespace EasyAbp.EShop.Stores.StoreOwners.Dtos
{ {
public class CreateUpdateStoreOwnerDto : IMultiStore [Serializable]
public class CreateUpdateStoreOwnerDto : ExtensibleObject, IMultiStore
{ {
[Required] [Required]
public Guid StoreId { get; set; } public Guid StoreId { get; set; }

1
modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/StoreOwners/Dtos/GetStoreOwnerListDto.cs

@ -4,6 +4,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Stores.StoreOwners.Dtos namespace EasyAbp.EShop.Stores.StoreOwners.Dtos
{ {
[Serializable]
public class GetStoreOwnerListDto : PagedAndSortedResultRequestDto public class GetStoreOwnerListDto : PagedAndSortedResultRequestDto
{ {
public Guid? StoreId { get; set; } public Guid? StoreId { get; set; }

1
modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/StoreOwners/Dtos/StoreOwnerDto.cs

@ -5,6 +5,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Stores.StoreOwners.Dtos namespace EasyAbp.EShop.Stores.StoreOwners.Dtos
{ {
[Serializable]
public class StoreOwnerDto : ExtensibleFullAuditedEntityDto<Guid>, IMultiStore public class StoreOwnerDto : ExtensibleFullAuditedEntityDto<Guid>, IMultiStore
{ {
public Guid StoreId { get; set; } public Guid StoreId { get; set; }

4
modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/Stores/Dtos/CreateUpdateStoreDto.cs

@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Stores.Stores.Dtos namespace EasyAbp.EShop.Stores.Stores.Dtos
{ {
public class CreateUpdateStoreDto [Serializable]
public class CreateUpdateStoreDto : ExtensibleObject
{ {
[Required] [Required]
[DisplayName("StoreName")] [DisplayName("StoreName")]

1
modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/Stores/Dtos/StoreDto.cs

@ -4,6 +4,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Stores.Stores.Dtos namespace EasyAbp.EShop.Stores.Stores.Dtos
{ {
[Serializable]
public class StoreDto : ExtensibleFullAuditedEntityDto<Guid> public class StoreDto : ExtensibleFullAuditedEntityDto<Guid>
{ {
[Required] [Required]

4
modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/Transactions/Dtos/CreateUpdateTransactionDto.cs

@ -1,9 +1,11 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Stores.Transactions.Dtos namespace EasyAbp.EShop.Stores.Transactions.Dtos
{ {
[Serializable] [Serializable]
public class CreateUpdateTransactionDto public class CreateUpdateTransactionDto : ExtensibleObject
{ {
public Guid StoreId { get; set; } public Guid StoreId { get; set; }

2
modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Contracts/EasyAbp/EShop/Stores/Transactions/Dtos/TransactionDto.cs

@ -4,7 +4,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Stores.Transactions.Dtos namespace EasyAbp.EShop.Stores.Transactions.Dtos
{ {
[Serializable] [Serializable]
public class TransactionDto : CreationAuditedEntityDto<Guid> public class TransactionDto : ExtensibleCreationAuditedEntityDto<Guid>
{ {
public Guid StoreId { get; set; } public Guid StoreId { get; set; }

11
modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Web/StoresWebAutoMapperProfile.cs

@ -18,13 +18,16 @@ namespace EasyAbp.EShop.Stores.Web
* Alternatively, you can split your mapping configurations * Alternatively, you can split your mapping configurations
* into multiple profile classes for a better organization. */ * into multiple profile classes for a better organization. */
CreateMap<StoreDto, CreateEditStoreViewModel>(); CreateMap<StoreDto, CreateEditStoreViewModel>();
CreateMap<CreateEditStoreViewModel, CreateUpdateStoreDto>(MemberList.Source); CreateMap<CreateEditStoreViewModel, CreateUpdateStoreDto>()
.Ignore(dto => dto.ExtraProperties);
CreateMap<StoreOwnerDto, CreateEditStoreOwnerViewModel>(); CreateMap<StoreOwnerDto, CreateEditStoreOwnerViewModel>();
CreateMap<CreateEditStoreOwnerViewModel, CreateUpdateStoreOwnerDto>(MemberList.Source); CreateMap<CreateEditStoreOwnerViewModel, CreateUpdateStoreOwnerDto>()
.Ignore(dto => dto.ExtraProperties);
CreateMap<TransactionDto, CreateEditTransactionViewModel>(); CreateMap<TransactionDto, CreateEditTransactionViewModel>();
CreateMap<CreateEditTransactionViewModel, CreateUpdateTransactionDto>(); CreateMap<CreateEditTransactionViewModel, CreateUpdateTransactionDto>()
.Ignore(dto => dto.ExtraProperties);
} }
} }
} }

2
plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Application.Contracts/EasyAbp/EShop/Plugins/Baskets/BasketItems/Dtos/BasketItemDto.cs

@ -4,7 +4,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Plugins.Baskets.BasketItems.Dtos namespace EasyAbp.EShop.Plugins.Baskets.BasketItems.Dtos
{ {
[Serializable] [Serializable]
public class BasketItemDto : AuditedEntityDto<Guid> public class BasketItemDto : ExtensibleAuditedEntityDto<Guid>
{ {
public string BasketName { get; set; } public string BasketName { get; set; }

7
plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Application.Contracts/EasyAbp/EShop/Plugins/Baskets/BasketItems/Dtos/CreateBasketItemDto.cs

@ -2,11 +2,12 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Plugins.Baskets.BasketItems.Dtos namespace EasyAbp.EShop.Plugins.Baskets.BasketItems.Dtos
{ {
[Serializable] [Serializable]
public class CreateBasketItemDto : IValidatableObject public class CreateBasketItemDto : ExtensibleObject
{ {
public string BasketName { get; set; } = BasketsConsts.DefaultBasketName; public string BasketName { get; set; } = BasketsConsts.DefaultBasketName;
@ -23,8 +24,10 @@ namespace EasyAbp.EShop.Plugins.Baskets.BasketItems.Dtos
public int Quantity { get; set; } public int Quantity { get; set; }
public new IEnumerable<ValidationResult> Validate(ValidationContext validationContext) public override IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{ {
base.Validate(validationContext);
if (Quantity <= 0) if (Quantity <= 0)
{ {
yield return new ValidationResult( yield return new ValidationResult(

1
plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Application.Contracts/EasyAbp/EShop/Plugins/Baskets/BasketItems/Dtos/GetBasketItemListDto.cs

@ -4,6 +4,7 @@ using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Plugins.Baskets.BasketItems.Dtos namespace EasyAbp.EShop.Plugins.Baskets.BasketItems.Dtos
{ {
[Serializable]
public class GetBasketItemListDto : PagedAndSortedResultRequestDto public class GetBasketItemListDto : PagedAndSortedResultRequestDto
{ {
[Required] [Required]

7
plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Application.Contracts/EasyAbp/EShop/Plugins/Baskets/BasketItems/Dtos/UpdateBasketItemDto.cs

@ -1,16 +1,19 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Volo.Abp.ObjectExtending;
namespace EasyAbp.EShop.Plugins.Baskets.BasketItems.Dtos namespace EasyAbp.EShop.Plugins.Baskets.BasketItems.Dtos
{ {
[Serializable] [Serializable]
public class UpdateBasketItemDto : IValidatableObject public class UpdateBasketItemDto : ExtensibleObject
{ {
public int Quantity { get; set; } public int Quantity { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) public override IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{ {
base.Validate(validationContext);
if (Quantity <= 0) if (Quantity <= 0)
{ {
yield return new ValidationResult( yield return new ValidationResult(

7
plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/BasketsWebAutoMapperProfile.cs

@ -1,6 +1,7 @@
using EasyAbp.EShop.Plugins.Baskets.BasketItems.Dtos; using EasyAbp.EShop.Plugins.Baskets.BasketItems.Dtos;
using AutoMapper; using AutoMapper;
using EasyAbp.EShop.Plugins.Baskets.Web.Pages.EShop.Plugins.Baskets.BasketItems.BasketItem.ViewModels; using EasyAbp.EShop.Plugins.Baskets.Web.Pages.EShop.Plugins.Baskets.BasketItems.BasketItem.ViewModels;
using Volo.Abp.AutoMapper;
namespace EasyAbp.EShop.Plugins.Baskets.Web namespace EasyAbp.EShop.Plugins.Baskets.Web
{ {
@ -12,8 +13,10 @@ namespace EasyAbp.EShop.Plugins.Baskets.Web
* Alternatively, you can split your mapping configurations * Alternatively, you can split your mapping configurations
* into multiple profile classes for a better organization. */ * into multiple profile classes for a better organization. */
CreateMap<BasketItemDto, EditBasketItemViewModel>(); CreateMap<BasketItemDto, EditBasketItemViewModel>();
CreateMap<CreateBasketItemViewModel, CreateBasketItemDto>(); CreateMap<CreateBasketItemViewModel, CreateBasketItemDto>()
CreateMap<EditBasketItemViewModel, UpdateBasketItemDto>(); .Ignore(dto => dto.ExtraProperties);
CreateMap<EditBasketItemViewModel, UpdateBasketItemDto>()
.Ignore(dto => dto.ExtraProperties);
} }
} }
} }

6
samples/EShopSample/aspnet-core/src/EShopSample.Application.Contracts/EShopSample.Application.Contracts.csproj

@ -14,9 +14,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.Application.Contracts" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Application.Contracts" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Application.Contracts" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.WeChatPay.Application.Contracts" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.Prepayment.Application.Contracts" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Prepayment.Application.Contracts" Version="1.2.0" />
<PackageReference Include="Volo.Abp.ObjectExtending" Version="3.0.5" /> <PackageReference Include="Volo.Abp.ObjectExtending" Version="3.0.5" />
<PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Account.Application.Contracts" Version="3.0.5" />
<PackageReference Include="Volo.Abp.Identity.Application.Contracts" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Identity.Application.Contracts" Version="3.0.5" />

6
samples/EShopSample/aspnet-core/src/EShopSample.Application/EShopSample.Application.csproj

@ -15,9 +15,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.Application" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Application" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Application" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.WeChatPay.Application" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.Prepayment.Application" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Prepayment.Application" Version="1.2.0" />
<PackageReference Include="Volo.Abp.Account.Application" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Account.Application" Version="3.0.5" />
<PackageReference Include="Volo.Abp.Identity.Application" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Identity.Application" Version="3.0.5" />
<PackageReference Include="Volo.Abp.PermissionManagement.Application" Version="3.0.5" /> <PackageReference Include="Volo.Abp.PermissionManagement.Application" Version="3.0.5" />

6
samples/EShopSample/aspnet-core/src/EShopSample.Domain.Shared/EShopSample.Domain.Shared.csproj

@ -9,9 +9,9 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.Domain.Shared" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Domain.Shared" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Domain.Shared" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.WeChatPay.Domain.Shared" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.Prepayment.Domain.Shared" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Prepayment.Domain.Shared" Version="1.2.0" />
<PackageReference Include="Volo.Abp.Identity.Domain.Shared" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Identity.Domain.Shared" Version="3.0.5" />
<PackageReference Include="Volo.Abp.IdentityServer.Domain.Shared" Version="3.0.5" /> <PackageReference Include="Volo.Abp.IdentityServer.Domain.Shared" Version="3.0.5" />
<PackageReference Include="Volo.Abp.BackgroundJobs.Domain.Shared" Version="3.0.5" /> <PackageReference Include="Volo.Abp.BackgroundJobs.Domain.Shared" Version="3.0.5" />

6
samples/EShopSample/aspnet-core/src/EShopSample.Domain/EShopSample.Domain.csproj

@ -14,9 +14,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.Domain" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Domain" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Domain" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.WeChatPay.Domain" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.Prepayment.Domain" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Prepayment.Domain" Version="1.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="2.2.0" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="2.2.0" />
<PackageReference Include="Volo.Abp.Identity.Domain" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Identity.Domain" Version="3.0.5" />
<PackageReference Include="Volo.Abp.PermissionManagement.Domain.Identity" Version="3.0.5" /> <PackageReference Include="Volo.Abp.PermissionManagement.Domain.Identity" Version="3.0.5" />

4249
samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/Migrations/20200905205854_AddedExtraPropertiesToSomeEntities.Designer.cs

File diff suppressed because it is too large

40
samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/Migrations/20200905205854_AddedExtraPropertiesToSomeEntities.cs

@ -0,0 +1,40 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace EShopSample.Migrations
{
public partial class AddedExtraPropertiesToSomeEntities : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "ExtraProperties",
table: "EasyAbpEShopProductsProductAttributes",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "ExtraProperties",
table: "EasyAbpEShopProductsProductAttributeOptions",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "ExtraProperties",
table: "EasyAbpEShopOrdersOrderLines",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "ExtraProperties",
table: "EasyAbpEShopProductsProductAttributes");
migrationBuilder.DropColumn(
name: "ExtraProperties",
table: "EasyAbpEShopProductsProductAttributeOptions");
migrationBuilder.DropColumn(
name: "ExtraProperties",
table: "EasyAbpEShopOrdersOrderLines");
}
}
}

14
samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore.DbMigrations/Migrations/EShopSampleMigrationsDbContextModelSnapshot.cs

@ -165,6 +165,10 @@ namespace EShopSample.Migrations
.HasColumnName("DeletionTime") .HasColumnName("DeletionTime")
.HasColumnType("datetime2"); .HasColumnType("datetime2");
b.Property<string>("ExtraProperties")
.HasColumnName("ExtraProperties")
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsDeleted") b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnName("IsDeleted") .HasColumnName("IsDeleted")
@ -1234,6 +1238,10 @@ namespace EShopSample.Migrations
b.Property<int>("DisplayOrder") b.Property<int>("DisplayOrder")
.HasColumnType("int"); .HasColumnType("int");
b.Property<string>("ExtraProperties")
.HasColumnName("ExtraProperties")
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsDeleted") b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnName("IsDeleted") .HasColumnName("IsDeleted")
@ -1289,6 +1297,10 @@ namespace EShopSample.Migrations
b.Property<int>("DisplayOrder") b.Property<int>("DisplayOrder")
.HasColumnType("int"); .HasColumnType("int");
b.Property<string>("ExtraProperties")
.HasColumnName("ExtraProperties")
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsDeleted") b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnName("IsDeleted") .HasColumnName("IsDeleted")
@ -1643,7 +1655,6 @@ namespace EShopSample.Migrations
.HasColumnType("decimal(20,8)"); .HasColumnType("decimal(20,8)");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
.HasColumnName("TenantId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid>("UserId") b.Property<Guid>("UserId")
@ -1938,7 +1949,6 @@ namespace EShopSample.Migrations
.HasColumnType("nvarchar(max)"); .HasColumnType("nvarchar(max)");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
.HasColumnName("TenantId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.HasKey("Id"); b.HasKey("Id");

6
samples/EShopSample/aspnet-core/src/EShopSample.EntityFrameworkCore/EShopSample.EntityFrameworkCore.csproj

@ -11,9 +11,9 @@
<ProjectReference Include="..\..\..\..\..\integration\EasyAbp.EShop\src\EasyAbp.EShop.EntityFrameworkCore\EasyAbp.EShop.EntityFrameworkCore.csproj" /> <ProjectReference Include="..\..\..\..\..\integration\EasyAbp.EShop\src\EasyAbp.EShop.EntityFrameworkCore\EasyAbp.EShop.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\..\..\..\..\plugins\Baskets\src\EasyAbp.EShop.Plugins.Baskets.EntityFrameworkCore\EasyAbp.EShop.Plugins.Baskets.EntityFrameworkCore.csproj" /> <ProjectReference Include="..\..\..\..\..\plugins\Baskets\src\EasyAbp.EShop.Plugins.Baskets.EntityFrameworkCore\EasyAbp.EShop.Plugins.Baskets.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\EShopSample.Domain\EShopSample.Domain.csproj" /> <ProjectReference Include="..\EShopSample.Domain\EShopSample.Domain.csproj" />
<PackageReference Include="EasyAbp.PaymentService.EntityFrameworkCore" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.EntityFrameworkCore" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.EntityFrameworkCore" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.WeChatPay.EntityFrameworkCore" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.Prepayment.EntityFrameworkCore" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Prepayment.EntityFrameworkCore" Version="1.2.0" />
<PackageReference Include="Volo.Abp.EntityFrameworkCore.SqlServer" Version="3.0.5" /> <PackageReference Include="Volo.Abp.EntityFrameworkCore.SqlServer" Version="3.0.5" />
<PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="3.0.5" /> <PackageReference Include="Volo.Abp.PermissionManagement.EntityFrameworkCore" Version="3.0.5" />
<PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="3.0.5" /> <PackageReference Include="Volo.Abp.SettingManagement.EntityFrameworkCore" Version="3.0.5" />

6
samples/EShopSample/aspnet-core/src/EShopSample.HttpApi.Client/EShopSample.HttpApi.Client.csproj

@ -14,9 +14,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.HttpApi.Client" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.HttpApi.Client" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.HttpApi.Client" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.WeChatPay.HttpApi.Client" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.Prepayment.HttpApi.Client" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Prepayment.HttpApi.Client" Version="1.2.0" />
<PackageReference Include="Volo.Abp.Account.HttpApi.Client" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Account.HttpApi.Client" Version="3.0.5" />
<PackageReference Include="Volo.Abp.Identity.HttpApi.Client" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Identity.HttpApi.Client" Version="3.0.5" />
<PackageReference Include="Volo.Abp.PermissionManagement.HttpApi.Client" Version="3.0.5" /> <PackageReference Include="Volo.Abp.PermissionManagement.HttpApi.Client" Version="3.0.5" />

6
samples/EShopSample/aspnet-core/src/EShopSample.HttpApi/EShopSample.HttpApi.csproj

@ -14,9 +14,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="EasyAbp.PaymentService.HttpApi" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.HttpApi" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.HttpApi" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.WeChatPay.HttpApi" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.Prepayment.HttpApi" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Prepayment.HttpApi" Version="1.2.0" />
<PackageReference Include="Volo.Abp.Account.HttpApi" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Account.HttpApi" Version="3.0.5" />
<PackageReference Include="Volo.Abp.Identity.HttpApi" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Identity.HttpApi" Version="3.0.5" />
<PackageReference Include="Volo.Abp.PermissionManagement.HttpApi" Version="3.0.5" /> <PackageReference Include="Volo.Abp.PermissionManagement.HttpApi" Version="3.0.5" />

6
samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSample.Web.csproj

@ -49,9 +49,9 @@
<ProjectReference Include="..\EShopSample.Application\EShopSample.Application.csproj" /> <ProjectReference Include="..\EShopSample.Application\EShopSample.Application.csproj" />
<ProjectReference Include="..\EShopSample.HttpApi\EShopSample.HttpApi.csproj" /> <ProjectReference Include="..\EShopSample.HttpApi\EShopSample.HttpApi.csproj" />
<ProjectReference Include="..\EShopSample.EntityFrameworkCore.DbMigrations\EShopSample.EntityFrameworkCore.DbMigrations.csproj" /> <ProjectReference Include="..\EShopSample.EntityFrameworkCore.DbMigrations\EShopSample.EntityFrameworkCore.DbMigrations.csproj" />
<PackageReference Include="EasyAbp.PaymentService.Web" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Web" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.WeChatPay.Web" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.WeChatPay.Web" Version="1.2.0" />
<PackageReference Include="EasyAbp.PaymentService.Prepayment.Web" Version="1.1.7" /> <PackageReference Include="EasyAbp.PaymentService.Prepayment.Web" Version="1.2.0" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="3.0.5" /> <PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="3.0.5" />
<PackageReference Include="Volo.Abp.Autofac" Version="3.0.5" /> <PackageReference Include="Volo.Abp.Autofac" Version="3.0.5" />
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="3.0.5" /> <PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="3.0.5" />

Loading…
Cancel
Save