Browse Source

Basic CRUD features implement for product module

pull/49/head
gdlcf88 6 years ago
parent
commit
bcd2e5ee29
  1. 0
      modules/EasyAbp.EShop.Products/host/EasyAbp.EShop.Products.Web.Unified/EasyAbp.EShop.Products.Web.Unified.csproj
  2. 19
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/Authorization/ProductsPermissionDefinitionProvider.cs
  3. 14
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/Authorization/ProductsPermissions.cs
  4. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp.EShop.Products.Application.Contracts.csproj
  5. 37
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Authorization/ProductsPermissionDefinitionProvider.cs
  6. 40
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Authorization/ProductsPermissions.cs
  7. 16
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Categories/Dtos/CategoryDto.cs
  8. 22
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Categories/Dtos/CreateUpdateCategoryDto.cs
  9. 18
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Categories/ICategoryAppService.cs
  10. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/EShopProductsApplicationContractsModule.cs
  11. 23
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductCategories/Dtos/CreateUpdateProductCategoryDto.cs
  12. 16
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductCategories/Dtos/ProductCategoryDto.cs
  13. 18
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductCategories/IProductCategoryAppService.cs
  14. 24
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductTypes/Dtos/CreateUpdateProductTypeDto.cs
  15. 17
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductTypes/Dtos/ProductTypeDto.cs
  16. 18
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductTypes/IProductTypeAppService.cs
  17. 12
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateUpdateProductDetailDto.cs
  18. 31
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/CreateUpdateProductDto.cs
  19. 12
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/GetProductListDto.cs
  20. 17
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductAttributeDto.cs
  21. 14
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductAttributeOptionDto.cs
  22. 9
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductDetailDto.cs
  23. 27
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductDto.cs
  24. 20
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/Dtos/ProductSkuDto.cs
  25. 18
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/IProductAppService.cs
  26. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp.EShop.Products.Application.csproj
  27. 25
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Categories/CategoryAppService.cs
  28. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/EShopProductsApplicationModule.cs
  29. 25
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductCategories/ProductCategoryAppService.cs
  30. 25
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductTypes/ProductTypeAppService.cs
  31. 66
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductAppService.cs
  32. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductsAppService.cs
  33. 39
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductsApplicationAutoMapperProfile.cs
  34. 14
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/ProductsApplicationAutoMapperProfile.cs
  35. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp.EShop.Products.Domain.Shared.csproj
  36. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/EShopProductsDomainSharedModule.cs
  37. 48
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/cs.json
  38. 49
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/en.json
  39. 48
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/pl.json
  40. 48
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/pt-BR.json
  41. 49
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/sl.json
  42. 49
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/tr.json
  43. 48
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/vi.json
  44. 49
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/zh-Hans.json
  45. 49
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/zh-Hant.json
  46. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/ProductsResource.cs
  47. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/InventoryStrategy.cs
  48. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/ProductInventoryReductionFailedEto.cs
  49. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/ProductsErrorCodes.cs
  50. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/cs.json
  51. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/en.json
  52. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/pl.json
  53. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/pt-BR.json
  54. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/sl.json
  55. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/tr.json
  56. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/vi.json
  57. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/zh-Hans.json
  58. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/zh-Hant.json
  59. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp.EShop.Products.Domain.csproj
  60. 24
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/Category.cs
  61. 9
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/ICategoryRepository.cs
  62. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/EShopProductsDomainModule.cs
  63. 15
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/ProductCategories/IProductCategoryRepository.cs
  64. 24
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/ProductCategories/ProductCategory.cs
  65. 9
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/ProductTypes/IProductTypeRepository.cs
  66. 22
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/ProductTypes/ProductType.cs
  67. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/IProductInventoryManager.cs
  68. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/IProductPriceProvider.cs
  69. 9
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/IProductRepository.cs
  70. 58
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/Product.cs
  71. 3
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductAttribute.cs
  72. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductAttributeOption.cs
  73. 10
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductDetail.cs
  74. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductSku.cs
  75. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/ProductsDbProperties.cs
  76. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Settings/ProductsSettingDefinitionProvider.cs
  77. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Settings/ProductsSettings.cs
  78. 27
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/Product.cs
  79. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp.EShop.Products.EntityFrameworkCore.csproj
  80. 14
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/Categories/CategoryRepository.cs
  81. 12
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/EntityFrameworkCore/EShopProductsEntityFrameworkCoreModule.cs
  82. 26
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/EntityFrameworkCore/IProductsDbContext.cs
  83. 39
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/EntityFrameworkCore/ProductsDbContext.cs
  84. 105
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/EntityFrameworkCore/ProductsDbContextModelCreatingExtensions.cs
  85. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/EntityFrameworkCore/ProductsModelBuilderConfigurationOptions.cs
  86. 33
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/ProductCategories/ProductCategoryRepository.cs
  87. 14
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/ProductTypes/ProductTypeRepository.cs
  88. 14
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/Products/ProductRepository.cs
  89. 13
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EntityFrameworkCore/IProductsDbContext.cs
  90. 27
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EntityFrameworkCore/ProductsDbContext.cs
  91. 43
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EntityFrameworkCore/ProductsDbContextModelCreatingExtensions.cs
  92. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi.Client/EasyAbp.EShop.Products.HttpApi.Client.csproj
  93. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi.Client/EasyAbp/EShop/Products/EShopProductsHttpApiClientModule.cs
  94. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi/EasyAbp.EShop.Products.HttpApi.csproj
  95. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi/EasyAbp/EShop/Products/EShopProductsHttpApiModule.cs
  96. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi/EasyAbp/EShop/Products/ProductsController.cs
  97. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.MongoDB/EasyAbp.EShop.Products.MongoDB.csproj
  98. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.MongoDB/EasyAbp/EShop/Products/MongoDB/EShopProductsMongoDbModule.cs
  99. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.MongoDB/EasyAbp/EShop/Products/MongoDB/IProductsMongoDbContext.cs
  100. 0
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.MongoDB/EasyAbp/EShop/Products/MongoDB/ProductsMongoDbContext.cs

0
modules/EasyAbp.EShop.Products/host/EasyAbp.EShop.Products.Web.Unified/EasyAbp.EShop.Products.Web.Unified.csproj

19
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/Authorization/ProductsPermissionDefinitionProvider.cs

@ -1,19 +0,0 @@
using EasyAbp.EShop.Products.Localization;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Localization;
namespace EasyAbp.EShop.Products.Authorization
{
public class ProductsPermissionDefinitionProvider : PermissionDefinitionProvider
{
public override void Define(IPermissionDefinitionContext context)
{
//var moduleGroup = context.AddGroup(ProductsPermissions.GroupName, L("Permission:Products"));
}
private static LocalizableString L(string name)
{
return LocalizableString.Create<ProductsResource>(name);
}
}
}

14
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/Authorization/ProductsPermissions.cs

@ -1,14 +0,0 @@
using Volo.Abp.Reflection;
namespace EasyAbp.EShop.Products.Authorization
{
public class ProductsPermissions
{
public const string GroupName = "Products";
public static string[] GetAll()
{
return ReflectionHelper.GetPublicConstantsRecursively(typeof(ProductsPermissions));
}
}
}

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

@ -4,7 +4,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>EasyAbp.EShop.Products</RootNamespace>
<RootNamespace />
</PropertyGroup>
<ItemGroup>

37
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Authorization/ProductsPermissionDefinitionProvider.cs

@ -0,0 +1,37 @@
using EasyAbp.EShop.Products.Localization;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Localization;
using Volo.Abp.MultiTenancy;
namespace EasyAbp.EShop.Products.Authorization
{
public class ProductsPermissionDefinitionProvider : PermissionDefinitionProvider
{
public override void Define(IPermissionDefinitionContext context)
{
var moduleGroup = context.AddGroup(ProductsPermissions.GroupName, L("Permission:Products"));
var productTypes = moduleGroup.AddPermission(ProductsPermissions.ProductTypes.Default, L("Permission:ProductType"), MultiTenancySides.Host);
productTypes.AddChild(ProductsPermissions.ProductTypes.Create, L("Permission:Create"), MultiTenancySides.Host);
productTypes.AddChild(ProductsPermissions.ProductTypes.Update, L("Permission:Update"), MultiTenancySides.Host);
productTypes.AddChild(ProductsPermissions.ProductTypes.Delete, L("Permission:Delete"), MultiTenancySides.Host);
var categories = moduleGroup.AddPermission(ProductsPermissions.Categories.Default, L("Permission:Category"));
categories.AddChild(ProductsPermissions.Categories.CrossStore, L("Permission:CrossStore"));
categories.AddChild(ProductsPermissions.Categories.Create, L("Permission:Create"));
categories.AddChild(ProductsPermissions.Categories.Update, L("Permission:Update"));
categories.AddChild(ProductsPermissions.Categories.Delete, L("Permission:Delete"));
var product = moduleGroup.AddPermission(ProductsPermissions.Products.Default, L("Permission:Product"));
product.AddChild(ProductsPermissions.Products.CrossStore, L("Permission:CrossStore"));
product.AddChild(ProductsPermissions.Products.Create, L("Permission:Create"));
product.AddChild(ProductsPermissions.Products.Update, L("Permission:Update"));
product.AddChild(ProductsPermissions.Products.Delete, L("Permission:Delete"));
}
private static LocalizableString L(string name)
{
return LocalizableString.Create<ProductsResource>(name);
}
}
}

40
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Authorization/ProductsPermissions.cs

@ -0,0 +1,40 @@
using Volo.Abp.Reflection;
namespace EasyAbp.EShop.Products.Authorization
{
public class ProductsPermissions
{
public const string GroupName = "Products";
public class ProductTypes
{
public const string Default = GroupName + ".ProductType";
public const string Delete = Default + ".Delete";
public const string Update = Default + ".Update";
public const string Create = Default + ".Create";
}
public class Categories
{
public const string Default = GroupName + ".Category";
public const string CrossStore = Default + ".CrossStore";
public const string Delete = Default + ".Delete";
public const string Update = Default + ".Update";
public const string Create = Default + ".Create";
}
public class Products
{
public const string Default = GroupName + ".Product";
public const string CrossStore = Default + ".CrossStore";
public const string Delete = Default + ".Delete";
public const string Update = Default + ".Update";
public const string Create = Default + ".Create";
}
public static string[] GetAll()
{
return ReflectionHelper.GetPublicConstantsRecursively(typeof(ProductsPermissions));
}
}
}

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

@ -0,0 +1,16 @@
using System;
using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Categories.Dtos
{
public class CategoryDto : FullAuditedEntityDto<Guid>
{
public Guid? ParentCategoryId { get; set; }
public string DisplayName { get; set; }
public string Description { get; set; }
public string MediaResources { get; set; }
}
}

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

@ -0,0 +1,22 @@
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace EasyAbp.EShop.Products.Categories.Dtos
{
public class CreateUpdateCategoryDto
{
[DisplayName("CategoryParentCategoryId")]
public Guid? ParentCategoryId { get; set; }
[Required]
[DisplayName("CategoryDisplayName")]
public string DisplayName { get; set; }
[DisplayName("CategoryDescription")]
public string Description { get; set; }
[DisplayName("CategoryMediaResources")]
public string MediaResources { get; set; }
}
}

18
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Categories/ICategoryAppService.cs

@ -0,0 +1,18 @@
using System;
using EasyAbp.EShop.Products.Categories.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace EasyAbp.EShop.Products.Categories
{
public interface ICategoryAppService :
ICrudAppService<
CategoryDto,
Guid,
PagedAndSortedResultRequestDto,
CreateUpdateCategoryDto,
CreateUpdateCategoryDto>
{
}
}

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EShopProductsApplicationContractsModule.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/EShopProductsApplicationContractsModule.cs

23
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductCategories/Dtos/CreateUpdateProductCategoryDto.cs

@ -0,0 +1,23 @@
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace EasyAbp.EShop.Products.ProductCategories.Dtos
{
public class CreateUpdateProductCategoryDto
{
[DisplayName("ProductCategoryStoreId")]
public Guid? StoreId { get; set; }
[Required]
[DisplayName("ProductCategoryCategoryId")]
public Guid CategoryId { get; set; }
[Required]
[DisplayName("ProductCategoryProductId")]
public Guid ProductId { get; set; }
[DisplayName("ProductCategoryDisplayOrder")]
public int DisplayOrder { get; set; }
}
}

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

@ -0,0 +1,16 @@
using System;
using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.ProductCategories.Dtos
{
public class ProductCategoryDto : AuditedEntityDto<Guid>
{
public Guid? StoreId { get; set; }
public Guid CategoryId { get; set; }
public Guid ProductId { get; set; }
public int DisplayOrder { get; set; }
}
}

18
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductCategories/IProductCategoryAppService.cs

@ -0,0 +1,18 @@
using System;
using EasyAbp.EShop.Products.ProductCategories.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace EasyAbp.EShop.Products.ProductCategories
{
public interface IProductCategoryAppService :
ICrudAppService<
ProductCategoryDto,
Guid,
PagedAndSortedResultRequestDto,
CreateUpdateProductCategoryDto,
CreateUpdateProductCategoryDto>
{
}
}

24
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductTypes/Dtos/CreateUpdateProductTypeDto.cs

@ -0,0 +1,24 @@
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using Volo.Abp.MultiTenancy;
namespace EasyAbp.EShop.Products.ProductTypes.Dtos
{
public class CreateUpdateProductTypeDto
{
[Required]
[DisplayName("ProductTypeName")]
public string Name { get; set; }
[Required]
[DisplayName("ProductTypeDisplayName")]
public string DisplayName { get; set; }
[DisplayName("ProductTypeDescription")]
public string Description { get; set; }
[DisplayName("ProductTypeMultiTenancySide")]
public MultiTenancySides MultiTenancySide { get; set; }
}
}

17
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductTypes/Dtos/ProductTypeDto.cs

@ -0,0 +1,17 @@
using System;
using Volo.Abp.Application.Dtos;
using Volo.Abp.MultiTenancy;
namespace EasyAbp.EShop.Products.ProductTypes.Dtos
{
public class ProductTypeDto : FullAuditedEntityDto<Guid>
{
public string Name { get; set; }
public string DisplayName { get; set; }
public string Description { get; set; }
public MultiTenancySides MultiTenancySide { get; set; }
}
}

18
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/ProductTypes/IProductTypeAppService.cs

@ -0,0 +1,18 @@
using System;
using EasyAbp.EShop.Products.ProductTypes.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace EasyAbp.EShop.Products.ProductTypes
{
public interface IProductTypeAppService :
ICrudAppService<
ProductTypeDto,
Guid,
PagedAndSortedResultRequestDto,
CreateUpdateProductTypeDto,
CreateUpdateProductTypeDto>
{
}
}

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

@ -0,0 +1,12 @@
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace EasyAbp.EShop.Products.Products.Dtos
{
public class CreateUpdateProductDetailDto
{
[DisplayName("ProductDetailDescription")]
public string Description { get; set; }
}
}

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

@ -0,0 +1,31 @@
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace EasyAbp.EShop.Products.Products.Dtos
{
public class CreateUpdateProductDto
{
[DisplayName("ProductStoreId")]
public Guid? StoreId { get; set; }
[Required]
[DisplayName("ProductProductTypeId")]
public Guid ProductTypeId { get; set; }
[Required]
[DisplayName("ProductDisplayName")]
public string DisplayName { get; set; }
public CreateUpdateProductDetailDto ProductDetail { get; set; }
[DisplayName("ProductInventoryStrategy")]
public InventoryStrategy InventoryStrategy { get; set; }
[DisplayName("ProductMediaResources")]
public string MediaResources { get; set; }
[DisplayName("ProductIsPublished")]
public bool IsPublished { get; set; }
}
}

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

@ -0,0 +1,12 @@
using System;
using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Products.Dtos
{
public class GetProductListDto : PagedAndSortedResultRequestDto
{
public Guid? StoreId { get; set; }
public Guid? CategoryId { get; set; }
}
}

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

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Products.Dtos
{
public class ProductAttributeDto : FullAuditedEntityDto<Guid>
{
[Required]
public string DisplayName { get; set; }
public string Description { get; set; }
public IEnumerable<ProductAttributeOptionDto> ProductAttributeOptions { get; set; }
}
}

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

@ -0,0 +1,14 @@
using System;
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Products.Dtos
{
public class ProductAttributeOptionDto : FullAuditedEntityDto<Guid>
{
[Required]
public string DisplayName { get; set; }
public string Description { get; set; }
}
}

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

@ -0,0 +1,9 @@
using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Products.Dtos
{
public class ProductDetailDto : EntityDto
{
public string Description { get; set; }
}
}

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

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Products.Dtos
{
public class ProductDto : FullAuditedEntityDto<Guid>
{
public Guid? StoreId { get; set; }
public Guid ProductTypeId { get; set; }
public string DisplayName { get; set; }
public InventoryStrategy InventoryStrategy { get; set; }
public string MediaResources { get; set; }
public bool IsPublished { get; set; }
public ProductDetailDto ProductDetail { get; set; }
public IEnumerable<ProductAttributeDto> ProductAttributes { get; set; }
public IEnumerable<ProductSkuDto> ProductSkus { get; set; }
}
}

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

@ -0,0 +1,20 @@
using System;
using Volo.Abp.Application.Dtos;
namespace EasyAbp.EShop.Products.Products.Dtos
{
public class ProductSkuDto : FullAuditedEntityDto<Guid>
{
public string SerializedAttributeOptionIds { get; set; }
public decimal OriginalPrice { get; set; }
public decimal Price { get; set; }
public int Inventory { get; set; }
public int Sold { get; set; }
public int OrderMinQuantity { get; set; }
}
}

18
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application.Contracts/EasyAbp/EShop/Products/Products/IProductAppService.cs

@ -0,0 +1,18 @@
using System;
using EasyAbp.EShop.Products.Products.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace EasyAbp.EShop.Products.Products
{
public interface IProductAppService :
ICrudAppService<
ProductDto,
Guid,
GetProductListDto,
CreateUpdateProductDto,
CreateUpdateProductDto>
{
}
}

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp.EShop.Products.Application.csproj

@ -4,7 +4,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>EasyAbp.EShop.Products</RootNamespace>
<RootNamespace />
</PropertyGroup>
<ItemGroup>

25
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Categories/CategoryAppService.cs

@ -0,0 +1,25 @@
using System;
using EasyAbp.EShop.Products.Authorization;
using EasyAbp.EShop.Products.Categories.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace EasyAbp.EShop.Products.Categories
{
public class CategoryAppService : CrudAppService<Category, CategoryDto, Guid, PagedAndSortedResultRequestDto, CreateUpdateCategoryDto, CreateUpdateCategoryDto>,
ICategoryAppService
{
protected override string CreatePolicyName { get; set; } = ProductsPermissions.Categories.Create;
protected override string DeletePolicyName { get; set; } = ProductsPermissions.Categories.Delete;
protected override string UpdatePolicyName { get; set; } = ProductsPermissions.Categories.Update;
protected override string GetPolicyName { get; set; } = ProductsPermissions.Categories.Default;
protected override string GetListPolicyName { get; set; } = ProductsPermissions.Categories.Default;
private readonly ICategoryRepository _repository;
public CategoryAppService(ICategoryRepository repository) : base(repository)
{
_repository = repository;
}
}
}

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EShopProductsApplicationModule.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/EShopProductsApplicationModule.cs

25
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductCategories/ProductCategoryAppService.cs

@ -0,0 +1,25 @@
using System;
using EasyAbp.EShop.Products.Authorization;
using EasyAbp.EShop.Products.ProductCategories.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace EasyAbp.EShop.Products.ProductCategories
{
public class ProductCategoryAppService : CrudAppService<ProductCategory, ProductCategoryDto, Guid, PagedAndSortedResultRequestDto, CreateUpdateProductCategoryDto, CreateUpdateProductCategoryDto>,
IProductCategoryAppService
{
protected override string CreatePolicyName { get; set; } = ProductsPermissions.Products.Create;
protected override string DeletePolicyName { get; set; } = ProductsPermissions.Products.Delete;
protected override string UpdatePolicyName { get; set; } = ProductsPermissions.Products.Update;
protected override string GetPolicyName { get; set; } = ProductsPermissions.Products.Default;
protected override string GetListPolicyName { get; set; } = ProductsPermissions.Products.Default;
private readonly IProductCategoryRepository _repository;
public ProductCategoryAppService(IProductCategoryRepository repository) : base(repository)
{
_repository = repository;
}
}
}

25
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductTypes/ProductTypeAppService.cs

@ -0,0 +1,25 @@
using System;
using EasyAbp.EShop.Products.Authorization;
using EasyAbp.EShop.Products.ProductTypes.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace EasyAbp.EShop.Products.ProductTypes
{
public class ProductTypeAppService : CrudAppService<ProductType, ProductTypeDto, Guid, PagedAndSortedResultRequestDto, CreateUpdateProductTypeDto, CreateUpdateProductTypeDto>,
IProductTypeAppService
{
protected override string CreatePolicyName { get; set; } = ProductsPermissions.ProductTypes.Create;
protected override string DeletePolicyName { get; set; } = ProductsPermissions.ProductTypes.Delete;
protected override string UpdatePolicyName { get; set; } = ProductsPermissions.ProductTypes.Update;
protected override string GetPolicyName { get; set; } = ProductsPermissions.ProductTypes.Default;
protected override string GetListPolicyName { get; set; } = ProductsPermissions.ProductTypes.Default;
private readonly IProductTypeRepository _repository;
public ProductTypeAppService(IProductTypeRepository repository) : base(repository)
{
_repository = repository;
}
}
}

66
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/Products/ProductAppService.cs

@ -0,0 +1,66 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using EasyAbp.EShop.Products.Authorization;
using EasyAbp.EShop.Products.ProductCategories;
using EasyAbp.EShop.Products.Products.Dtos;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Threading;
namespace EasyAbp.EShop.Products.Products
{
public class ProductAppService : CrudAppService<Product, ProductDto, Guid, GetProductListDto, CreateUpdateProductDto, CreateUpdateProductDto>,
IProductAppService
{
protected override string CreatePolicyName { get; set; } = ProductsPermissions.Products.Create;
protected override string DeletePolicyName { get; set; } = ProductsPermissions.Products.Delete;
protected override string UpdatePolicyName { get; set; } = ProductsPermissions.Products.Update;
protected override string GetPolicyName { get; set; } = ProductsPermissions.Products.Default;
protected override string GetListPolicyName { get; set; } = ProductsPermissions.Products.Default;
private readonly IProductCategoryRepository _productCategoryRepository;
private readonly IProductRepository _repository;
public ProductAppService(
IProductCategoryRepository productCategoryRepository,
IProductRepository repository) : base(repository)
{
_productCategoryRepository = productCategoryRepository;
_repository = repository;
}
protected override IQueryable<Product> CreateFilteredQuery(GetProductListDto input)
{
var query = base.CreateFilteredQuery(input);
if (input.CategoryId.HasValue)
{
var productIds = AsyncHelper
.RunSync(() => _productCategoryRepository.GetListByCategoryId(input.CategoryId.Value, input.StoreId))
.Select(pc => pc.ProductId).ToList();
query = query.Where(p => productIds.Contains(p.Id));
}
else if (input.StoreId.HasValue)
{
query = query.Where(p => p.StoreId == input.StoreId);
}
return query;
}
public override async Task<ProductDto> CreateAsync(CreateUpdateProductDto input)
{
await CheckCreatePolicyAsync();
var entity = MapToEntity(input);
TryToSetTenantId(entity);
await Repository.InsertAsync(entity, autoSave: true);
return MapToGetOutputDto(entity);
}
}
}

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/ProductsAppService.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductsAppService.cs

39
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp/EShop/Products/ProductsApplicationAutoMapperProfile.cs

@ -0,0 +1,39 @@
using EasyAbp.EShop.Products.Products;
using EasyAbp.EShop.Products.Products.Dtos;
using EasyAbp.EShop.Products.Categories;
using EasyAbp.EShop.Products.Categories.Dtos;
using EasyAbp.EShop.Products.ProductTypes;
using EasyAbp.EShop.Products.ProductTypes.Dtos;
using EasyAbp.EShop.Products.ProductCategories;
using EasyAbp.EShop.Products.ProductCategories.Dtos;
using AutoMapper;
using Volo.Abp.AutoMapper;
namespace EasyAbp.EShop.Products
{
public class ProductsApplicationAutoMapperProfile : Profile
{
public ProductsApplicationAutoMapperProfile()
{
/* You can configure your AutoMapper mapping configuration here.
* Alternatively, you can split your mapping configurations
* into multiple profile classes for a better organization. */
CreateMap<Product, ProductDto>();
CreateMap<ProductDetail, ProductDetailDto>();
CreateMap<ProductAttribute, ProductAttributeDto>();
CreateMap<ProductAttributeOption, ProductAttributeOptionDto>();
CreateMap<ProductSku, ProductSkuDto>();
CreateMap<CreateUpdateProductDto, Product>(MemberList.Source)
.Ignore(p => p.ProductDetail)
.Ignore(p => p.ProductAttributes)
.Ignore(p => p.ProductSkus);
CreateMap<CreateUpdateProductDetailDto, ProductDetail>(MemberList.Source);
CreateMap<Category, CategoryDto>();
CreateMap<CreateUpdateCategoryDto, Category>(MemberList.Source);
CreateMap<ProductType, ProductTypeDto>();
CreateMap<CreateUpdateProductTypeDto, ProductType>(MemberList.Source);
CreateMap<ProductCategory, ProductCategoryDto>();
CreateMap<CreateUpdateProductCategoryDto, ProductCategory>(MemberList.Source);
}
}
}

14
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/ProductsApplicationAutoMapperProfile.cs

@ -1,14 +0,0 @@
using AutoMapper;
namespace EasyAbp.EShop.Products
{
public class ProductsApplicationAutoMapperProfile : Profile
{
public ProductsApplicationAutoMapperProfile()
{
/* You can configure your AutoMapper mapping configuration here.
* Alternatively, you can split your mapping configurations
* into multiple profile classes for a better organization. */
}
}
}

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp.EShop.Products.Domain.Shared.csproj

@ -4,7 +4,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>EasyAbp.EShop.Products</RootNamespace>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
@ -12,8 +12,8 @@
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Localization\Products\*.json" />
<Content Remove="Localization\Products\*.json" />
<EmbeddedResource Include="EasyAbp\EShop\Products\Localization\Products\*.json" />
<Content Remove="EasyAbp\EShop\Products\Localization\Products\*.json" />
</ItemGroup>
</Project>

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EShopProductsDomainSharedModule.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/EShopProductsDomainSharedModule.cs

@ -17,7 +17,7 @@ namespace EasyAbp.EShop.Products
{
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<EShopProductsDomainSharedModule>("EasyAbp.EShop.Products");
options.FileSets.AddEmbedded<EShopProductsDomainSharedModule>();
});
Configure<AbpLocalizationOptions>(options =>
@ -25,12 +25,12 @@ namespace EasyAbp.EShop.Products
options.Resources
.Add<ProductsResource>("en")
.AddBaseTypes(typeof(AbpValidationResource))
.AddVirtualJson("/Localization/Products");
.AddVirtualJson("/EasyAbp/EShop/Products/Localization/Products");
});
Configure<AbpExceptionLocalizationOptions>(options =>
{
options.MapCodeNamespace("Products", typeof(ProductsResource));
options.MapCodeNamespace("EasyAbp.EShop.Products", typeof(ProductsResource));
});
}
}

48
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/cs.json

@ -0,0 +1,48 @@
{
"culture": "cs",
"texts": {
"Menu:Product": "MenuProduct",
"Product": "Product",
"ProductTenantId": "ProductTenantId",
"ProductStoreId": "ProductStoreId",
"ProductProductTypeId": "ProductProductTypeId",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailDescription": "ProductDetailDescription",
"ProductInventoryStrategy": "ProductInventoryStrategy",
"ProductIsPublished": "ProductIsPublished",
"ProductMediaResources": "ProductMediaResources",
"CreateProduct": "CreateProduct",
"EditProduct": "EditProduct",
"ProductDeletionConfirmationMessage": "Are you sure to delete the product {0}?",
"SuccessfullyDeleted": "Successfully deleted",
"Menu:Category": "MenuCategory",
"Category": "Category",
"CategoryTenantId": "CategoryTenantId",
"CategoryParentCategoryId": "CategoryParentCategoryId",
"CategoryDisplayName": "CategoryDisplayName",
"CategoryDescription": "CategoryDescription",
"CategoryMediaResources": "CategoryMediaResources",
"CreateCategory": "CreateCategory",
"EditCategory": "EditCategory",
"CategoryDeletionConfirmationMessage": "Are you sure to delete the category {0}?",
"Menu:ProductType": "MenuProductType",
"ProductType": "ProductType",
"ProductTypeName": "ProductTypeName",
"ProductTypeDisplayName": "ProductTypeDisplayName",
"ProductTypeDescription": "ProductTypeDescription",
"ProductTypeMultiTenancySide": "ProductTypeMultiTenancySide",
"CreateProductType": "CreateProductType",
"EditProductType": "EditProductType",
"ProductTypeDeletionConfirmationMessage": "Are you sure to delete the producttype {0}?",
"Menu:ProductCategory": "MenuProductCategory",
"ProductCategory": "ProductCategory",
"ProductCategoryTenantId": "ProductCategoryTenantId",
"ProductCategoryStoreId": "ProductCategoryStoreId",
"ProductCategoryCategoryId": "ProductCategoryCategoryId",
"ProductCategoryProductId": "ProductCategoryProductId",
"ProductCategoryDisplayOrder": "ProductCategoryDisplayOrder",
"CreateProductCategory": "CreateProductCategory",
"EditProductCategory": "EditProductCategory",
"ProductCategoryDeletionConfirmationMessage": "Are you sure to delete the productcategory {0}?"
}
}

49
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/en.json

@ -0,0 +1,49 @@
{
"culture": "en",
"texts": {
"ManageYourProfile": "Manage your profile",
"Menu:Product": "MenuProduct",
"Product": "Product",
"ProductTenantId": "ProductTenantId",
"ProductStoreId": "ProductStoreId",
"ProductProductTypeId": "ProductProductTypeId",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailDescription": "ProductDetailDescription",
"ProductInventoryStrategy": "ProductInventoryStrategy",
"ProductIsPublished": "ProductIsPublished",
"ProductMediaResources": "ProductMediaResources",
"CreateProduct": "CreateProduct",
"EditProduct": "EditProduct",
"ProductDeletionConfirmationMessage": "Are you sure to delete the product {0}?",
"SuccessfullyDeleted": "Successfully deleted",
"Menu:Category": "MenuCategory",
"Category": "Category",
"CategoryTenantId": "CategoryTenantId",
"CategoryParentCategoryId": "CategoryParentCategoryId",
"CategoryDisplayName": "CategoryDisplayName",
"CategoryDescription": "CategoryDescription",
"CategoryMediaResources": "CategoryMediaResources",
"CreateCategory": "CreateCategory",
"EditCategory": "EditCategory",
"CategoryDeletionConfirmationMessage": "Are you sure to delete the category {0}?",
"Menu:ProductType": "MenuProductType",
"ProductType": "ProductType",
"ProductTypeName": "ProductTypeName",
"ProductTypeDisplayName": "ProductTypeDisplayName",
"ProductTypeDescription": "ProductTypeDescription",
"ProductTypeMultiTenancySide": "ProductTypeMultiTenancySide",
"CreateProductType": "CreateProductType",
"EditProductType": "EditProductType",
"ProductTypeDeletionConfirmationMessage": "Are you sure to delete the producttype {0}?",
"Menu:ProductCategory": "MenuProductCategory",
"ProductCategory": "ProductCategory",
"ProductCategoryTenantId": "ProductCategoryTenantId",
"ProductCategoryStoreId": "ProductCategoryStoreId",
"ProductCategoryCategoryId": "ProductCategoryCategoryId",
"ProductCategoryProductId": "ProductCategoryProductId",
"ProductCategoryDisplayOrder": "ProductCategoryDisplayOrder",
"CreateProductCategory": "CreateProductCategory",
"EditProductCategory": "EditProductCategory",
"ProductCategoryDeletionConfirmationMessage": "Are you sure to delete the productcategory {0}?"
}
}

48
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/pl.json

@ -0,0 +1,48 @@
{
"culture": "pl",
"texts": {
"Menu:Product": "MenuProduct",
"Product": "Product",
"ProductTenantId": "ProductTenantId",
"ProductStoreId": "ProductStoreId",
"ProductProductTypeId": "ProductProductTypeId",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailDescription": "ProductDetailDescription",
"ProductInventoryStrategy": "ProductInventoryStrategy",
"ProductIsPublished": "ProductIsPublished",
"ProductMediaResources": "ProductMediaResources",
"CreateProduct": "CreateProduct",
"EditProduct": "EditProduct",
"ProductDeletionConfirmationMessage": "Are you sure to delete the product {0}?",
"SuccessfullyDeleted": "Successfully deleted",
"Menu:Category": "MenuCategory",
"Category": "Category",
"CategoryTenantId": "CategoryTenantId",
"CategoryParentCategoryId": "CategoryParentCategoryId",
"CategoryDisplayName": "CategoryDisplayName",
"CategoryDescription": "CategoryDescription",
"CategoryMediaResources": "CategoryMediaResources",
"CreateCategory": "CreateCategory",
"EditCategory": "EditCategory",
"CategoryDeletionConfirmationMessage": "Are you sure to delete the category {0}?",
"Menu:ProductType": "MenuProductType",
"ProductType": "ProductType",
"ProductTypeName": "ProductTypeName",
"ProductTypeDisplayName": "ProductTypeDisplayName",
"ProductTypeDescription": "ProductTypeDescription",
"ProductTypeMultiTenancySide": "ProductTypeMultiTenancySide",
"CreateProductType": "CreateProductType",
"EditProductType": "EditProductType",
"ProductTypeDeletionConfirmationMessage": "Are you sure to delete the producttype {0}?",
"Menu:ProductCategory": "MenuProductCategory",
"ProductCategory": "ProductCategory",
"ProductCategoryTenantId": "ProductCategoryTenantId",
"ProductCategoryStoreId": "ProductCategoryStoreId",
"ProductCategoryCategoryId": "ProductCategoryCategoryId",
"ProductCategoryProductId": "ProductCategoryProductId",
"ProductCategoryDisplayOrder": "ProductCategoryDisplayOrder",
"CreateProductCategory": "CreateProductCategory",
"EditProductCategory": "EditProductCategory",
"ProductCategoryDeletionConfirmationMessage": "Are you sure to delete the productcategory {0}?"
}
}

48
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/pt-BR.json

@ -0,0 +1,48 @@
{
"culture": "pt-BR",
"texts": {
"Menu:Product": "MenuProduct",
"Product": "Product",
"ProductTenantId": "ProductTenantId",
"ProductStoreId": "ProductStoreId",
"ProductProductTypeId": "ProductProductTypeId",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailDescription": "ProductDetailDescription",
"ProductInventoryStrategy": "ProductInventoryStrategy",
"ProductIsPublished": "ProductIsPublished",
"ProductMediaResources": "ProductMediaResources",
"CreateProduct": "CreateProduct",
"EditProduct": "EditProduct",
"ProductDeletionConfirmationMessage": "Are you sure to delete the product {0}?",
"SuccessfullyDeleted": "Successfully deleted",
"Menu:Category": "MenuCategory",
"Category": "Category",
"CategoryTenantId": "CategoryTenantId",
"CategoryParentCategoryId": "CategoryParentCategoryId",
"CategoryDisplayName": "CategoryDisplayName",
"CategoryDescription": "CategoryDescription",
"CategoryMediaResources": "CategoryMediaResources",
"CreateCategory": "CreateCategory",
"EditCategory": "EditCategory",
"CategoryDeletionConfirmationMessage": "Are you sure to delete the category {0}?",
"Menu:ProductType": "MenuProductType",
"ProductType": "ProductType",
"ProductTypeName": "ProductTypeName",
"ProductTypeDisplayName": "ProductTypeDisplayName",
"ProductTypeDescription": "ProductTypeDescription",
"ProductTypeMultiTenancySide": "ProductTypeMultiTenancySide",
"CreateProductType": "CreateProductType",
"EditProductType": "EditProductType",
"ProductTypeDeletionConfirmationMessage": "Are you sure to delete the producttype {0}?",
"Menu:ProductCategory": "MenuProductCategory",
"ProductCategory": "ProductCategory",
"ProductCategoryTenantId": "ProductCategoryTenantId",
"ProductCategoryStoreId": "ProductCategoryStoreId",
"ProductCategoryCategoryId": "ProductCategoryCategoryId",
"ProductCategoryProductId": "ProductCategoryProductId",
"ProductCategoryDisplayOrder": "ProductCategoryDisplayOrder",
"CreateProductCategory": "CreateProductCategory",
"EditProductCategory": "EditProductCategory",
"ProductCategoryDeletionConfirmationMessage": "Are you sure to delete the productcategory {0}?"
}
}

49
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/sl.json

@ -0,0 +1,49 @@
{
"culture": "sl",
"texts": {
"ManageYourProfile": "Upravljajte svojim profilom",
"Menu:Product": "MenuProduct",
"Product": "Product",
"ProductTenantId": "ProductTenantId",
"ProductStoreId": "ProductStoreId",
"ProductProductTypeId": "ProductProductTypeId",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailDescription": "ProductDetailDescription",
"ProductInventoryStrategy": "ProductInventoryStrategy",
"ProductIsPublished": "ProductIsPublished",
"ProductMediaResources": "ProductMediaResources",
"CreateProduct": "CreateProduct",
"EditProduct": "EditProduct",
"ProductDeletionConfirmationMessage": "Are you sure to delete the product {0}?",
"SuccessfullyDeleted": "Successfully deleted",
"Menu:Category": "MenuCategory",
"Category": "Category",
"CategoryTenantId": "CategoryTenantId",
"CategoryParentCategoryId": "CategoryParentCategoryId",
"CategoryDisplayName": "CategoryDisplayName",
"CategoryDescription": "CategoryDescription",
"CategoryMediaResources": "CategoryMediaResources",
"CreateCategory": "CreateCategory",
"EditCategory": "EditCategory",
"CategoryDeletionConfirmationMessage": "Are you sure to delete the category {0}?",
"Menu:ProductType": "MenuProductType",
"ProductType": "ProductType",
"ProductTypeName": "ProductTypeName",
"ProductTypeDisplayName": "ProductTypeDisplayName",
"ProductTypeDescription": "ProductTypeDescription",
"ProductTypeMultiTenancySide": "ProductTypeMultiTenancySide",
"CreateProductType": "CreateProductType",
"EditProductType": "EditProductType",
"ProductTypeDeletionConfirmationMessage": "Are you sure to delete the producttype {0}?",
"Menu:ProductCategory": "MenuProductCategory",
"ProductCategory": "ProductCategory",
"ProductCategoryTenantId": "ProductCategoryTenantId",
"ProductCategoryStoreId": "ProductCategoryStoreId",
"ProductCategoryCategoryId": "ProductCategoryCategoryId",
"ProductCategoryProductId": "ProductCategoryProductId",
"ProductCategoryDisplayOrder": "ProductCategoryDisplayOrder",
"CreateProductCategory": "CreateProductCategory",
"EditProductCategory": "EditProductCategory",
"ProductCategoryDeletionConfirmationMessage": "Are you sure to delete the productcategory {0}?"
}
}

49
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/tr.json

@ -0,0 +1,49 @@
{
"culture": "tr",
"texts": {
"ManageYourProfile": "Profil y�netimi",
"Menu:Product": "MenuProduct",
"Product": "Product",
"ProductTenantId": "ProductTenantId",
"ProductStoreId": "ProductStoreId",
"ProductProductTypeId": "ProductProductTypeId",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailDescription": "ProductDetailDescription",
"ProductInventoryStrategy": "ProductInventoryStrategy",
"ProductIsPublished": "ProductIsPublished",
"ProductMediaResources": "ProductMediaResources",
"CreateProduct": "CreateProduct",
"EditProduct": "EditProduct",
"ProductDeletionConfirmationMessage": "Are you sure to delete the product {0}?",
"SuccessfullyDeleted": "Successfully deleted",
"Menu:Category": "MenuCategory",
"Category": "Category",
"CategoryTenantId": "CategoryTenantId",
"CategoryParentCategoryId": "CategoryParentCategoryId",
"CategoryDisplayName": "CategoryDisplayName",
"CategoryDescription": "CategoryDescription",
"CategoryMediaResources": "CategoryMediaResources",
"CreateCategory": "CreateCategory",
"EditCategory": "EditCategory",
"CategoryDeletionConfirmationMessage": "Are you sure to delete the category {0}?",
"Menu:ProductType": "MenuProductType",
"ProductType": "ProductType",
"ProductTypeName": "ProductTypeName",
"ProductTypeDisplayName": "ProductTypeDisplayName",
"ProductTypeDescription": "ProductTypeDescription",
"ProductTypeMultiTenancySide": "ProductTypeMultiTenancySide",
"CreateProductType": "CreateProductType",
"EditProductType": "EditProductType",
"ProductTypeDeletionConfirmationMessage": "Are you sure to delete the producttype {0}?",
"Menu:ProductCategory": "MenuProductCategory",
"ProductCategory": "ProductCategory",
"ProductCategoryTenantId": "ProductCategoryTenantId",
"ProductCategoryStoreId": "ProductCategoryStoreId",
"ProductCategoryCategoryId": "ProductCategoryCategoryId",
"ProductCategoryProductId": "ProductCategoryProductId",
"ProductCategoryDisplayOrder": "ProductCategoryDisplayOrder",
"CreateProductCategory": "CreateProductCategory",
"EditProductCategory": "EditProductCategory",
"ProductCategoryDeletionConfirmationMessage": "Are you sure to delete the productcategory {0}?"
}
}

48
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/vi.json

@ -0,0 +1,48 @@
{
"culture": "vi",
"texts": {
"Menu:Product": "MenuProduct",
"Product": "Product",
"ProductTenantId": "ProductTenantId",
"ProductStoreId": "ProductStoreId",
"ProductProductTypeId": "ProductProductTypeId",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailDescription": "ProductDetailDescription",
"ProductInventoryStrategy": "ProductInventoryStrategy",
"ProductIsPublished": "ProductIsPublished",
"ProductMediaResources": "ProductMediaResources",
"CreateProduct": "CreateProduct",
"EditProduct": "EditProduct",
"ProductDeletionConfirmationMessage": "Are you sure to delete the product {0}?",
"SuccessfullyDeleted": "Successfully deleted",
"Menu:Category": "MenuCategory",
"Category": "Category",
"CategoryTenantId": "CategoryTenantId",
"CategoryParentCategoryId": "CategoryParentCategoryId",
"CategoryDisplayName": "CategoryDisplayName",
"CategoryDescription": "CategoryDescription",
"CategoryMediaResources": "CategoryMediaResources",
"CreateCategory": "CreateCategory",
"EditCategory": "EditCategory",
"CategoryDeletionConfirmationMessage": "Are you sure to delete the category {0}?",
"Menu:ProductType": "MenuProductType",
"ProductType": "ProductType",
"ProductTypeName": "ProductTypeName",
"ProductTypeDisplayName": "ProductTypeDisplayName",
"ProductTypeDescription": "ProductTypeDescription",
"ProductTypeMultiTenancySide": "ProductTypeMultiTenancySide",
"CreateProductType": "CreateProductType",
"EditProductType": "EditProductType",
"ProductTypeDeletionConfirmationMessage": "Are you sure to delete the producttype {0}?",
"Menu:ProductCategory": "MenuProductCategory",
"ProductCategory": "ProductCategory",
"ProductCategoryTenantId": "ProductCategoryTenantId",
"ProductCategoryStoreId": "ProductCategoryStoreId",
"ProductCategoryCategoryId": "ProductCategoryCategoryId",
"ProductCategoryProductId": "ProductCategoryProductId",
"ProductCategoryDisplayOrder": "ProductCategoryDisplayOrder",
"CreateProductCategory": "CreateProductCategory",
"EditProductCategory": "EditProductCategory",
"ProductCategoryDeletionConfirmationMessage": "Are you sure to delete the productcategory {0}?"
}
}

49
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/zh-Hans.json

@ -0,0 +1,49 @@
{
"culture": "zh-Hans",
"texts": {
"ManageYourProfile": "管理个人资料",
"Menu:Product": "MenuProduct",
"Product": "Product",
"ProductTenantId": "ProductTenantId",
"ProductStoreId": "ProductStoreId",
"ProductProductTypeId": "ProductProductTypeId",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailDescription": "ProductDetailDescription",
"ProductInventoryStrategy": "ProductInventoryStrategy",
"ProductIsPublished": "ProductIsPublished",
"ProductMediaResources": "ProductMediaResources",
"CreateProduct": "CreateProduct",
"EditProduct": "EditProduct",
"ProductDeletionConfirmationMessage": "Are you sure to delete the product {0}?",
"SuccessfullyDeleted": "Successfully deleted",
"Menu:Category": "MenuCategory",
"Category": "Category",
"CategoryTenantId": "CategoryTenantId",
"CategoryParentCategoryId": "CategoryParentCategoryId",
"CategoryDisplayName": "CategoryDisplayName",
"CategoryDescription": "CategoryDescription",
"CategoryMediaResources": "CategoryMediaResources",
"CreateCategory": "CreateCategory",
"EditCategory": "EditCategory",
"CategoryDeletionConfirmationMessage": "Are you sure to delete the category {0}?",
"Menu:ProductType": "MenuProductType",
"ProductType": "ProductType",
"ProductTypeName": "ProductTypeName",
"ProductTypeDisplayName": "ProductTypeDisplayName",
"ProductTypeDescription": "ProductTypeDescription",
"ProductTypeMultiTenancySide": "ProductTypeMultiTenancySide",
"CreateProductType": "CreateProductType",
"EditProductType": "EditProductType",
"ProductTypeDeletionConfirmationMessage": "Are you sure to delete the producttype {0}?",
"Menu:ProductCategory": "MenuProductCategory",
"ProductCategory": "ProductCategory",
"ProductCategoryTenantId": "ProductCategoryTenantId",
"ProductCategoryStoreId": "ProductCategoryStoreId",
"ProductCategoryCategoryId": "ProductCategoryCategoryId",
"ProductCategoryProductId": "ProductCategoryProductId",
"ProductCategoryDisplayOrder": "ProductCategoryDisplayOrder",
"CreateProductCategory": "CreateProductCategory",
"EditProductCategory": "EditProductCategory",
"ProductCategoryDeletionConfirmationMessage": "Are you sure to delete the productcategory {0}?"
}
}

49
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/zh-Hant.json

@ -0,0 +1,49 @@
{
"culture": "zh-Hant",
"texts": {
"ManageYourProfile": "管理個人資料",
"Menu:Product": "MenuProduct",
"Product": "Product",
"ProductTenantId": "ProductTenantId",
"ProductStoreId": "ProductStoreId",
"ProductProductTypeId": "ProductProductTypeId",
"ProductDisplayName": "ProductDisplayName",
"ProductDetailDescription": "ProductDetailDescription",
"ProductInventoryStrategy": "ProductInventoryStrategy",
"ProductIsPublished": "ProductIsPublished",
"ProductMediaResources": "ProductMediaResources",
"CreateProduct": "CreateProduct",
"EditProduct": "EditProduct",
"ProductDeletionConfirmationMessage": "Are you sure to delete the product {0}?",
"SuccessfullyDeleted": "Successfully deleted",
"Menu:Category": "MenuCategory",
"Category": "Category",
"CategoryTenantId": "CategoryTenantId",
"CategoryParentCategoryId": "CategoryParentCategoryId",
"CategoryDisplayName": "CategoryDisplayName",
"CategoryDescription": "CategoryDescription",
"CategoryMediaResources": "CategoryMediaResources",
"CreateCategory": "CreateCategory",
"EditCategory": "EditCategory",
"CategoryDeletionConfirmationMessage": "Are you sure to delete the category {0}?",
"Menu:ProductType": "MenuProductType",
"ProductType": "ProductType",
"ProductTypeName": "ProductTypeName",
"ProductTypeDisplayName": "ProductTypeDisplayName",
"ProductTypeDescription": "ProductTypeDescription",
"ProductTypeMultiTenancySide": "ProductTypeMultiTenancySide",
"CreateProductType": "CreateProductType",
"EditProductType": "EditProductType",
"ProductTypeDeletionConfirmationMessage": "Are you sure to delete the producttype {0}?",
"Menu:ProductCategory": "MenuProductCategory",
"ProductCategory": "ProductCategory",
"ProductCategoryTenantId": "ProductCategoryTenantId",
"ProductCategoryStoreId": "ProductCategoryStoreId",
"ProductCategoryCategoryId": "ProductCategoryCategoryId",
"ProductCategoryProductId": "ProductCategoryProductId",
"ProductCategoryDisplayOrder": "ProductCategoryDisplayOrder",
"CreateProductCategory": "CreateProductCategory",
"EditProductCategory": "EditProductCategory",
"ProductCategoryDeletionConfirmationMessage": "Are you sure to delete the productcategory {0}?"
}
}

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/ProductsResource.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/ProductsResource.cs

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Products/InventoryStrategy.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/InventoryStrategy.cs

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Products/ProductInventoryReductionFailedEto.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Products/ProductInventoryReductionFailedEto.cs

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/ProductsErrorCodes.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/ProductsErrorCodes.cs

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/cs.json

@ -1,6 +0,0 @@
{
"culture": "cs",
"texts": {
}
}

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/en.json

@ -1,6 +0,0 @@
{
"culture": "en",
"texts": {
"ManageYourProfile": "Manage your profile"
}
}

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/pl.json

@ -1,6 +0,0 @@
{
"culture": "pl",
"texts": {
}
}

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/pt-BR.json

@ -1,6 +0,0 @@
{
"culture": "pt-BR",
"texts": {
}
}

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/sl.json

@ -1,6 +0,0 @@
{
"culture": "sl",
"texts": {
"ManageYourProfile": "Upravljajte svojim profilom"
}
}

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/tr.json

@ -1,6 +0,0 @@
{
"culture": "tr",
"texts": {
"ManageYourProfile": "Profil yönetimi"
}
}

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/vi.json

@ -1,6 +0,0 @@
{
"culture": "vi",
"texts": {
}
}

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/zh-Hans.json

@ -1,6 +0,0 @@
{
"culture": "zh-Hans",
"texts": {
"ManageYourProfile": "管理个人资料"
}
}

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/Localization/Products/zh-Hant.json

@ -1,6 +0,0 @@
{
"culture": "zh-Hant",
"texts": {
"ManageYourProfile": "管理個人資料"
}
}

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp.EShop.Products.Domain.csproj

@ -4,7 +4,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>EasyAbp.EShop.Products</RootNamespace>
<RootNamespace />
</PropertyGroup>
<ItemGroup>

24
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Categories/Category.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/Category.cs

@ -1,4 +1,4 @@
using System;
using System;
using JetBrains.Annotations;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
@ -19,5 +19,25 @@ namespace EasyAbp.EShop.Products.Categories
[CanBeNull]
public virtual string MediaResources { get; protected set; }
protected Category()
{
}
public Category(
Guid id,
Guid? tenantId,
Guid? parentCategoryId,
string displayName,
string description,
string mediaResources
) :base(id)
{
TenantId = tenantId;
ParentCategoryId = parentCategoryId;
DisplayName = displayName;
Description = description;
MediaResources = mediaResources;
}
}
}
}

9
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/ICategoryRepository.cs

@ -0,0 +1,9 @@
using System;
using Volo.Abp.Domain.Repositories;
namespace EasyAbp.EShop.Products.Categories
{
public interface ICategoryRepository : IRepository<Category, Guid>
{
}
}

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EShopProductsDomainModule.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/EShopProductsDomainModule.cs

15
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/ProductCategories/IProductCategoryRepository.cs

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
namespace EasyAbp.EShop.Products.ProductCategories
{
public interface IProductCategoryRepository : IRepository<ProductCategory, Guid>
{
Task<IEnumerable<ProductCategory>> GetListByCategoryId(Guid categoryId, Guid? storeId, CancellationToken cancellationToken = default);
Task<IEnumerable<ProductCategory>> GetListByProductId(Guid productId, Guid? storeId, CancellationToken cancellationToken = default);
}
}

24
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/ProductCategories/ProductCategory.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/ProductCategories/ProductCategory.cs

@ -1,4 +1,4 @@
using System;
using System;
using EasyAbp.EShop.Stores.Stores;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
@ -16,5 +16,25 @@ namespace EasyAbp.EShop.Products.ProductCategories
public virtual Guid ProductId { get; protected set; }
public virtual int DisplayOrder { get; protected set; }
protected ProductCategory()
{
}
public ProductCategory(
Guid id,
Guid? tenantId,
Guid? storeId,
Guid categoryId,
Guid productId,
int displayOrder
) :base(id)
{
TenantId = tenantId;
StoreId = storeId;
CategoryId = categoryId;
ProductId = productId;
DisplayOrder = displayOrder;
}
}
}
}

9
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/ProductTypes/IProductTypeRepository.cs

@ -0,0 +1,9 @@
using System;
using Volo.Abp.Domain.Repositories;
namespace EasyAbp.EShop.Products.ProductTypes
{
public interface IProductTypeRepository : IRepository<ProductType, Guid>
{
}
}

22
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/ProductTypes/ProductType.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/ProductTypes/ProductType.cs

@ -1,4 +1,4 @@
using System;
using System;
using JetBrains.Annotations;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
@ -16,5 +16,23 @@ namespace EasyAbp.EShop.Products.ProductTypes
public virtual string Description { get; protected set; }
public virtual MultiTenancySides MultiTenancySide { get; protected set; }
protected ProductType()
{
}
public ProductType(
Guid id,
string name,
string displayName,
string description,
MultiTenancySides multiTenancySide
) :base(id)
{
Name = name;
DisplayName = displayName;
Description = description;
MultiTenancySide = multiTenancySide;
}
}
}
}

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/IProductInventoryManager.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/IProductInventoryManager.cs

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/IProductPriceProvider.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/IProductPriceProvider.cs

9
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/IProductRepository.cs

@ -0,0 +1,9 @@
using System;
using Volo.Abp.Domain.Repositories;
namespace EasyAbp.EShop.Products.Products
{
public interface IProductRepository : IRepository<Product, Guid>
{
}
}

58
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/Product.cs

@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using EasyAbp.EShop.Stores.Stores;
using JetBrains.Annotations;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace EasyAbp.EShop.Products.Products
{
public class Product : FullAuditedAggregateRoot<Guid>, IMultiTenant, IMultiStore
{
public virtual Guid? TenantId { get; protected set; }
public virtual Guid? StoreId { get; protected set; }
public virtual Guid ProductTypeId { get; protected set; }
[NotNull]
public virtual string DisplayName { get; protected set; }
public virtual InventoryStrategy InventoryStrategy { get; protected set; }
[CanBeNull]
public virtual string MediaResources { get; protected set; }
public virtual bool IsPublished { get; protected set; }
public virtual ProductDetail ProductDetail { get; protected set; }
public virtual IEnumerable<ProductAttribute> ProductAttributes { get; protected set; }
public virtual IEnumerable<ProductSku> ProductSkus { get; protected set; }
protected Product()
{
}
public Product(
Guid id,
Guid? tenantId,
Guid? storeId,
Guid productTypeId,
string displayName,
InventoryStrategy inventoryStrategy,
bool isPublished,
string mediaResources
) :base(id)
{
TenantId = tenantId;
StoreId = storeId;
ProductTypeId = productTypeId;
DisplayName = displayName;
InventoryStrategy = inventoryStrategy;
IsPublished = isPublished;
MediaResources = mediaResources;
}
}
}

3
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductAttribute.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductAttribute.cs

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using JetBrains.Annotations;
using Volo.Abp.Domain.Entities.Auditing;
@ -11,5 +12,7 @@ namespace EasyAbp.EShop.Products.Products
[CanBeNull]
public virtual string Description { get; protected set; }
public virtual IEnumerable<ProductAttributeOption> ProductAttributeOptions { get; protected set; }
}
}

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductAttributeOption.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductAttributeOption.cs

10
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductDetail.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductDetail.cs

@ -10,6 +10,16 @@ namespace EasyAbp.EShop.Products.Products
[CanBeNull]
public virtual string Description { get; protected set; }
protected ProductDetail() {}
public ProductDetail(
Guid productId,
[CanBeNull] string description)
{
ProductId = productId;
Description = description;
}
public override object[] GetKeys()
{

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/ProductSku.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductSku.cs

@ -13,6 +13,8 @@ namespace EasyAbp.EShop.Products.Products
public virtual int Inventory { get; protected set; }
public virtual int Sold { get; protected set; }
public virtual int OrderMinQuantity { get; protected set; }
}
}

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/ProductsDbProperties.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/ProductsDbProperties.cs

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Settings/ProductsSettingDefinitionProvider.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Settings/ProductsSettingDefinitionProvider.cs

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Settings/ProductsSettings.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Settings/ProductsSettings.cs

27
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/Products/Product.cs

@ -1,27 +0,0 @@
using System;
using EasyAbp.EShop.Stores.Stores;
using JetBrains.Annotations;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace EasyAbp.EShop.Products.Products
{
public class Product : FullAuditedAggregateRoot<Guid>, IMultiTenant, IMultiStore
{
public virtual Guid? TenantId { get; protected set; }
public virtual Guid? StoreId { get; protected set; }
public virtual Guid ProductTypeId { get; protected set; }
[NotNull]
public virtual string DisplayName { get; protected set; }
public virtual InventoryStrategy InventoryStrategy { get; protected set; }
public virtual bool IsPublished { get; protected set; }
[CanBeNull]
public virtual string MediaResources { get; protected set; }
}
}

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp.EShop.Products.EntityFrameworkCore.csproj

@ -4,7 +4,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>EasyAbp.EShop.Products</RootNamespace>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
@ -12,4 +12,8 @@
<ProjectReference Include="..\EasyAbp.EShop.Products.Domain\EasyAbp.EShop.Products.Domain.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="EasyAbp\EShop\Products" />
</ItemGroup>
</Project>

14
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/Categories/CategoryRepository.cs

@ -0,0 +1,14 @@
using System;
using EasyAbp.EShop.Products.EntityFrameworkCore;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
namespace EasyAbp.EShop.Products.Categories
{
public class CategoryRepository : EfCoreRepository<ProductsDbContext, Category, Guid>, ICategoryRepository
{
public CategoryRepository(IDbContextProvider<ProductsDbContext> dbContextProvider) : base(dbContextProvider)
{
}
}
}

12
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EntityFrameworkCore/EShopProductsEntityFrameworkCoreModule.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/EntityFrameworkCore/EShopProductsEntityFrameworkCoreModule.cs

@ -1,4 +1,8 @@
using Microsoft.Extensions.DependencyInjection;
using EasyAbp.EShop.Products.ProductCategories;
using EasyAbp.EShop.Products.ProductTypes;
using EasyAbp.EShop.Products.Categories;
using EasyAbp.EShop.Products.Products;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Modularity;
@ -17,7 +21,11 @@ namespace EasyAbp.EShop.Products.EntityFrameworkCore
/* Add custom repositories here. Example:
* options.AddRepository<Question, EfCoreQuestionRepository>();
*/
options.AddRepository<Product, ProductRepository>();
options.AddRepository<Category, CategoryRepository>();
options.AddRepository<ProductType, ProductTypeRepository>();
options.AddRepository<ProductCategory, ProductCategoryRepository>();
});
}
}
}
}

26
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/EntityFrameworkCore/IProductsDbContext.cs

@ -0,0 +1,26 @@
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
using EasyAbp.EShop.Products.Products;
using EasyAbp.EShop.Products.Categories;
using EasyAbp.EShop.Products.ProductTypes;
using EasyAbp.EShop.Products.ProductCategories;
namespace EasyAbp.EShop.Products.EntityFrameworkCore
{
[ConnectionStringName(ProductsDbProperties.ConnectionStringName)]
public interface IProductsDbContext : IEfCoreDbContext
{
/* Add DbSet for each Aggregate Root here. Example:
* DbSet<Question> Questions { get; }
*/
DbSet<Product> Products { get; set; }
DbSet<ProductDetail> ProductDetails { get; set; }
DbSet<ProductAttribute> ProductAttributes { get; set; }
DbSet<ProductAttributeOption> ProductAttributeOptions { get; set; }
DbSet<ProductSku> ProductSkus { get; set; }
DbSet<Category> Categories { get; set; }
DbSet<ProductType> ProductTypes { get; set; }
DbSet<ProductCategory> ProductCategories { get; set; }
}
}

39
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/EntityFrameworkCore/ProductsDbContext.cs

@ -0,0 +1,39 @@
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
using EasyAbp.EShop.Products.Products;
using EasyAbp.EShop.Products.Categories;
using EasyAbp.EShop.Products.ProductTypes;
using EasyAbp.EShop.Products.ProductCategories;
namespace EasyAbp.EShop.Products.EntityFrameworkCore
{
[ConnectionStringName(ProductsDbProperties.ConnectionStringName)]
public class ProductsDbContext : AbpDbContext<ProductsDbContext>, IProductsDbContext
{
/* Add DbSet for each Aggregate Root here. Example:
* public DbSet<Question> Questions { get; set; }
*/
public DbSet<Product> Products { get; set; }
public DbSet<ProductDetail> ProductDetails { get; set; }
public DbSet<ProductAttribute> ProductAttributes { get; set; }
public DbSet<ProductAttributeOption> ProductAttributeOptions { get; set; }
public DbSet<ProductSku> ProductSkus { get; set; }
public DbSet<Category> Categories { get; set; }
public DbSet<ProductType> ProductTypes { get; set; }
public DbSet<ProductCategory> ProductCategories { get; set; }
public ProductsDbContext(DbContextOptions<ProductsDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.ConfigureProducts();
}
}
}

105
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/EntityFrameworkCore/ProductsDbContextModelCreatingExtensions.cs

@ -0,0 +1,105 @@
using EasyAbp.EShop.Products.ProductCategories;
using EasyAbp.EShop.Products.ProductTypes;
using EasyAbp.EShop.Products.Categories;
using EasyAbp.EShop.Products.Products;
using System;
using Microsoft.EntityFrameworkCore;
using Volo.Abp;
using Volo.Abp.EntityFrameworkCore.Modeling;
namespace EasyAbp.EShop.Products.EntityFrameworkCore
{
public static class ProductsDbContextModelCreatingExtensions
{
public static void ConfigureProducts(
this ModelBuilder builder,
Action<ProductsModelBuilderConfigurationOptions> optionsAction = null)
{
Check.NotNull(builder, nameof(builder));
var options = new ProductsModelBuilderConfigurationOptions(
ProductsDbProperties.DbTablePrefix,
ProductsDbProperties.DbSchema
);
optionsAction?.Invoke(options);
/* Configure all entities here. Example:
builder.Entity<Question>(b =>
{
//Configure table & schema name
b.ToTable(options.TablePrefix + "Questions", options.Schema);
b.ConfigureByConvention();
//Properties
b.Property(q => q.Title).IsRequired().HasMaxLength(QuestionConsts.MaxTitleLength);
//Relations
b.HasMany(question => question.Tags).WithOne().HasForeignKey(qt => qt.QuestionId);
//Indexes
b.HasIndex(q => q.CreationTime);
});
*/
builder.Entity<Product>(b =>
{
b.ToTable(options.TablePrefix + "Products", options.Schema);
b.ConfigureByConvention();
/* Configure more properties here */
});
builder.Entity<ProductDetail>(b =>
{
b.ToTable(options.TablePrefix + "ProductDetails", options.Schema);
b.ConfigureByConvention();
/* Configure more properties here */
b.HasKey(x => new { x.ProductId });
});
builder.Entity<ProductAttribute>(b =>
{
b.ToTable(options.TablePrefix + "ProductAttributes", options.Schema);
b.ConfigureByConvention();
/* Configure more properties here */
});
builder.Entity<ProductAttributeOption>(b =>
{
b.ToTable(options.TablePrefix + "ProductAttributeOptions", options.Schema);
b.ConfigureByConvention();
/* Configure more properties here */
});
builder.Entity<ProductSku>(b =>
{
b.ToTable(options.TablePrefix + "ProductSkus", options.Schema);
b.ConfigureByConvention();
/* Configure more properties here */
});
builder.Entity<Category>(b =>
{
b.ToTable(options.TablePrefix + "Categories", options.Schema);
b.ConfigureByConvention();
/* Configure more properties here */
});
builder.Entity<ProductType>(b =>
{
b.ToTable(options.TablePrefix + "ProductTypes", options.Schema);
b.ConfigureByConvention();
/* Configure more properties here */
});
builder.Entity<ProductCategory>(b =>
{
b.ToTable(options.TablePrefix + "ProductCategories", options.Schema);
b.ConfigureByConvention();
/* Configure more properties here */
});
}
}
}

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EntityFrameworkCore/ProductsModelBuilderConfigurationOptions.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/EntityFrameworkCore/ProductsModelBuilderConfigurationOptions.cs

33
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/ProductCategories/ProductCategoryRepository.cs

@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using EasyAbp.EShop.Products.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
namespace EasyAbp.EShop.Products.ProductCategories
{
public class ProductCategoryRepository : EfCoreRepository<ProductsDbContext, ProductCategory, Guid>, IProductCategoryRepository
{
public ProductCategoryRepository(IDbContextProvider<ProductsDbContext> dbContextProvider) : base(dbContextProvider)
{
}
public async Task<IEnumerable<ProductCategory>> GetListByCategoryId(Guid categoryId, Guid? storeId,
CancellationToken cancellationToken = default)
{
return await GetQueryable().Where(pc => pc.CategoryId == categoryId && pc.StoreId == storeId)
.ToListAsync(cancellationToken);
}
public async Task<IEnumerable<ProductCategory>> GetListByProductId(Guid productId, Guid? storeId,
CancellationToken cancellationToken = default)
{
return await GetQueryable().Where(pc => pc.ProductId == productId && pc.StoreId == storeId)
.ToListAsync(cancellationToken);
}
}
}

14
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/ProductTypes/ProductTypeRepository.cs

@ -0,0 +1,14 @@
using System;
using EasyAbp.EShop.Products.EntityFrameworkCore;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
namespace EasyAbp.EShop.Products.ProductTypes
{
public class ProductTypeRepository : EfCoreRepository<ProductsDbContext, ProductType, Guid>, IProductTypeRepository
{
public ProductTypeRepository(IDbContextProvider<ProductsDbContext> dbContextProvider) : base(dbContextProvider)
{
}
}
}

14
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EasyAbp/EShop/Products/Products/ProductRepository.cs

@ -0,0 +1,14 @@
using System;
using EasyAbp.EShop.Products.EntityFrameworkCore;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
namespace EasyAbp.EShop.Products.Products
{
public class ProductRepository : EfCoreRepository<ProductsDbContext, Product, Guid>, IProductRepository
{
public ProductRepository(IDbContextProvider<ProductsDbContext> dbContextProvider) : base(dbContextProvider)
{
}
}
}

13
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EntityFrameworkCore/IProductsDbContext.cs

@ -1,13 +0,0 @@
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
namespace EasyAbp.EShop.Products.EntityFrameworkCore
{
[ConnectionStringName(ProductsDbProperties.ConnectionStringName)]
public interface IProductsDbContext : IEfCoreDbContext
{
/* Add DbSet for each Aggregate Root here. Example:
* DbSet<Question> Questions { get; }
*/
}
}

27
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EntityFrameworkCore/ProductsDbContext.cs

@ -1,27 +0,0 @@
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
namespace EasyAbp.EShop.Products.EntityFrameworkCore
{
[ConnectionStringName(ProductsDbProperties.ConnectionStringName)]
public class ProductsDbContext : AbpDbContext<ProductsDbContext>, IProductsDbContext
{
/* Add DbSet for each Aggregate Root here. Example:
* public DbSet<Question> Questions { get; set; }
*/
public ProductsDbContext(DbContextOptions<ProductsDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.ConfigureProducts();
}
}
}

43
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.EntityFrameworkCore/EntityFrameworkCore/ProductsDbContextModelCreatingExtensions.cs

@ -1,43 +0,0 @@
using System;
using Microsoft.EntityFrameworkCore;
using Volo.Abp;
namespace EasyAbp.EShop.Products.EntityFrameworkCore
{
public static class ProductsDbContextModelCreatingExtensions
{
public static void ConfigureProducts(
this ModelBuilder builder,
Action<ProductsModelBuilderConfigurationOptions> optionsAction = null)
{
Check.NotNull(builder, nameof(builder));
var options = new ProductsModelBuilderConfigurationOptions(
ProductsDbProperties.DbTablePrefix,
ProductsDbProperties.DbSchema
);
optionsAction?.Invoke(options);
/* Configure all entities here. Example:
builder.Entity<Question>(b =>
{
//Configure table & schema name
b.ToTable(options.TablePrefix + "Questions", options.Schema);
b.ConfigureByConvention();
//Properties
b.Property(q => q.Title).IsRequired().HasMaxLength(QuestionConsts.MaxTitleLength);
//Relations
b.HasMany(question => question.Tags).WithOne().HasForeignKey(qt => qt.QuestionId);
//Indexes
b.HasIndex(q => q.CreationTime);
});
*/
}
}
}

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi.Client/EasyAbp.EShop.Products.HttpApi.Client.csproj

@ -4,7 +4,7 @@
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>EasyAbp.EShop.Products</RootNamespace>
<RootNamespace />
</PropertyGroup>
<ItemGroup>

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi.Client/EShopProductsHttpApiClientModule.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi.Client/EasyAbp/EShop/Products/EShopProductsHttpApiClientModule.cs

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi/EasyAbp.EShop.Products.HttpApi.csproj

@ -4,7 +4,7 @@
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>EasyAbp.EShop.Products</RootNamespace>
<RootNamespace />
</PropertyGroup>
<ItemGroup>

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi/EShopProductsHttpApiModule.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi/EasyAbp/EShop/Products/EShopProductsHttpApiModule.cs

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi/ProductsController.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.HttpApi/EasyAbp/EShop/Products/ProductsController.cs

6
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.MongoDB/EasyAbp.EShop.Products.MongoDB.csproj

@ -4,7 +4,7 @@
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>EasyAbp.EShop.Products</RootNamespace>
<RootNamespace />
</PropertyGroup>
<ItemGroup>
@ -12,4 +12,8 @@
<ProjectReference Include="..\EasyAbp.EShop.Products.Domain\EasyAbp.EShop.Products.Domain.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="EasyAbp\EShop\Products" />
</ItemGroup>
</Project>

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.MongoDB/MongoDB/EShopProductsMongoDbModule.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.MongoDB/EasyAbp/EShop/Products/MongoDB/EShopProductsMongoDbModule.cs

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.MongoDB/MongoDB/IProductsMongoDbContext.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.MongoDB/EasyAbp/EShop/Products/MongoDB/IProductsMongoDbContext.cs

0
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.MongoDB/MongoDB/ProductsMongoDbContext.cs → modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.MongoDB/EasyAbp/EShop/Products/MongoDB/ProductsMongoDbContext.cs

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save