diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/EShopProductsDomainSharedModule.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/EShopProductsDomainSharedModule.cs index 578678bb..2ab36998 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/EShopProductsDomainSharedModule.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/EShopProductsDomainSharedModule.cs @@ -34,7 +34,7 @@ namespace EasyAbp.EShop.Products Configure(options => { - options.MapCodeNamespace("EasyAbp.EShop.Products", typeof(ProductsResource)); + options.MapCodeNamespace("EasyAbp.EShop.Products.ErrorCodes", typeof(ProductsResource)); }); } } diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/en.json b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/en.json index 15cea56f..d6c11f44 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/en.json +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/en.json @@ -65,7 +65,7 @@ "CouponType.Custom": "Custom", "Menu:Category": "Category", "Category": "Category", - "Subcategory" : "Subcategory", + "Subcategory": "Subcategory", "CategoryParentId": "Parent ID", "CategoryUniqueName": "Unique name", "CategoryDisplayName": "Display name", @@ -82,6 +82,13 @@ "IncreaseInventory": "Increase", "DecreaseInventory": "Decrease", "ProductInventoryInventory": "Inventory", - "ChangeProductInventory": "Change inventory" + "ChangeProductInventory": "Change inventory", + "EasyAbp.EShop.Products.ErrorCodes:DuplicateCategoryUniqueName": "The category unique name '{uniqueName}' is duplicated.", + "EasyAbp.EShop.Products.ErrorCodes:DuplicatedProductUniqueName": "The product unique name '{uniqueName}' is duplicated.", + "EasyAbp.EShop.Products.ErrorCodes:InventoryChangeFailed": "Inventory of product {productId} (SKU: {productSkuId}) cannot be changed by {changedInventory} from {originalInventory}", + "EasyAbp.EShop.Products.ErrorCodes:NonexistentProductGroup": "The specified product group ({productGroupName}) is nonexistent.", + "EasyAbp.EShop.Products.ErrorCodes:ProductDetailHasBeenUsed": "ProductDetail {productDetailId} has been used.", + "EasyAbp.EShop.Products.ErrorCodes:ProductSkuCodeDuplicated": "Sku code {code} is duplicate for the product {productId}", + "EasyAbp.EShop.Products.ErrorCodes:ProductSkuDuplicated": "Sku {serializedAttributeOptionIds} is duplicate for the product {productId}" } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/ProductsErrorCodes.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/ProductsErrorCodes.cs index cacdebe3..c85967f8 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/ProductsErrorCodes.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/ProductsErrorCodes.cs @@ -2,6 +2,13 @@ { public static class ProductsErrorCodes { + public const string DuplicateCategoryUniqueName = "EasyAbp.EShop.Products.ErrorCodes:DuplicateCategoryUniqueName"; + public const string DuplicatedProductUniqueName = "EasyAbp.EShop.Products.ErrorCodes:DuplicatedProductUniqueName"; + public const string InventoryChangeFailed = "EasyAbp.EShop.Products.ErrorCodes:InventoryChangeFailed"; + public const string NonexistentProductGroup = "EasyAbp.EShop.Products.ErrorCodes:NonexistentProductGroup"; + public const string ProductDetailHasBeenUsed = "EasyAbp.EShop.Products.ErrorCodes:ProductDetailHasBeenUsed"; + public const string ProductSkuCodeDuplicated = "EasyAbp.EShop.Products.ErrorCodes:ProductSkuCodeDuplicated"; + public const string ProductSkuDuplicated = "EasyAbp.EShop.Products.ErrorCodes:ProductSkuDuplicated"; //Add your business exception error codes here... } } diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/CategoryManager.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/CategoryManager.cs index 6ef6a7ed..f9b28df6 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/CategoryManager.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/CategoryManager.cs @@ -19,7 +19,7 @@ namespace EasyAbp.EShop.Products.Categories { if (await _repository.AnyAsync(x => x.UniqueName == uniqueName)) { - throw new DuplicateCategoryUniqueNameException(); + throw new DuplicateCategoryUniqueNameException(uniqueName); } return new Category(GuidGenerator.Create(), CurrentTenant.Id, parentId, uniqueName, displayName, @@ -31,7 +31,7 @@ namespace EasyAbp.EShop.Products.Categories { if (await _repository.AnyAsync(x => x.UniqueName == uniqueName && x.Id != entity.Id)) { - throw new DuplicateCategoryUniqueNameException(); + throw new DuplicateCategoryUniqueNameException(uniqueName); } entity.Update(parentId, uniqueName, displayName, description, mediaResources, isHidden); diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/DuplicateCategoryUniqueNameException.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/DuplicateCategoryUniqueNameException.cs index b93e7c9c..be9de0d5 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/DuplicateCategoryUniqueNameException.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/DuplicateCategoryUniqueNameException.cs @@ -4,9 +4,9 @@ namespace EasyAbp.EShop.Products.Categories { public class DuplicateCategoryUniqueNameException : BusinessException { - public DuplicateCategoryUniqueNameException() : base("DuplicateCategoryUniqueName") + public DuplicateCategoryUniqueNameException(string uniqueName) : base("DuplicateCategoryUniqueName") { - + WithData(nameof(uniqueName), uniqueName); } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/DuplicatedProductUniqueNameException.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/DuplicatedProductUniqueNameException.cs index fbc1cece..e9dff59a 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/DuplicatedProductUniqueNameException.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/DuplicatedProductUniqueNameException.cs @@ -4,10 +4,10 @@ namespace EasyAbp.EShop.Products.Products { public class DuplicatedProductUniqueNameException : BusinessException { - public DuplicatedProductUniqueNameException(string uniqueName) : base("DuplicatedProductUniqueName", - $"The product unique name \"{uniqueName}\" is duplicated.") + public DuplicatedProductUniqueNameException(string uniqueName) + : base(ProductsErrorCodes.DuplicatedProductUniqueName) { - + WithData(nameof(uniqueName), uniqueName); } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/InventoryChangeFailedException.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/InventoryChangeFailedException.cs index d81764e2..bcf82a04 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/InventoryChangeFailedException.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/InventoryChangeFailedException.cs @@ -5,11 +5,14 @@ namespace EasyAbp.EShop.Products.Products { public class InventoryChangeFailedException : BusinessException { - public InventoryChangeFailedException(Guid productId, Guid productSkuId, int originalInventory, - int changedInventory) : base( - message: - $"Inventory of product {productId} (SKU: {productSkuId}) cannot be changed by {changedInventory} from {originalInventory}") + public InventoryChangeFailedException( + Guid productId, Guid productSkuId, + int originalInventory, int changedInventory) : base(ProductsErrorCodes.InventoryChangeFailed) { + WithData(nameof(productId), productId); + WithData(nameof(productSkuId), productSkuId); + WithData(nameof(originalInventory), originalInventory); + WithData(nameof(changedInventory), changedInventory); } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/NonexistentProductGroupException.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/NonexistentProductGroupException.cs index aa698577..8d40ff96 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/NonexistentProductGroupException.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/NonexistentProductGroupException.cs @@ -5,10 +5,9 @@ namespace EasyAbp.EShop.Products.Products { public class NonexistentProductGroupException : BusinessException { - public NonexistentProductGroupException(string productGroupName) : base( - "NonexistentProductGroup", - $"The specified product group ({productGroupName}) is nonexistent.") + public NonexistentProductGroupException(string productGroupName) : base(ProductsErrorCodes.NonexistentProductGroup) { + WithData(nameof(productGroupName), productGroupName); } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductDetailHasBeenUsedException.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductDetailHasBeenUsedException.cs index c8d67d4b..c2ce6046 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductDetailHasBeenUsedException.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductDetailHasBeenUsedException.cs @@ -5,9 +5,9 @@ namespace EasyAbp.EShop.Products.Products { public class ProductDetailHasBeenUsedException : BusinessException { - public ProductDetailHasBeenUsedException(Guid productDetailId) : base( - message: $"ProductDetail {productDetailId} has been used.") + public ProductDetailHasBeenUsedException(Guid productDetailId) : base(ProductsErrorCodes.ProductDetailHasBeenUsed) { + WithData(nameof(productDetailId), productDetailId); } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductSkuCodeDuplicatedException.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductSkuCodeDuplicatedException.cs index bc5beee2..451766e3 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductSkuCodeDuplicatedException.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductSkuCodeDuplicatedException.cs @@ -5,9 +5,10 @@ namespace EasyAbp.EShop.Products.Products { public class ProductSkuCodeDuplicatedException : BusinessException { - public ProductSkuCodeDuplicatedException(Guid productId, string code) : base( - message: $"Sku code {code} is duplicate for the product {productId}") + public ProductSkuCodeDuplicatedException(Guid productId, string code) : base(ProductsErrorCodes.ProductSkuCodeDuplicated) { + WithData(nameof(productId), productId); + WithData(nameof(code), code); } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductSkuDuplicatedException.cs b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductSkuDuplicatedException.cs index d13b68ad..729fe655 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductSkuDuplicatedException.cs +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductSkuDuplicatedException.cs @@ -5,9 +5,10 @@ namespace EasyAbp.EShop.Products.Products { public class ProductSkuDuplicatedException : BusinessException { - public ProductSkuDuplicatedException(Guid productId, string serializedAttributeOptionIds) : base( - message: $"Sku {serializedAttributeOptionIds} is duplicate for the product {productId}") + public ProductSkuDuplicatedException(Guid productId, string serializedAttributeOptionIds) : base(ProductsErrorCodes.ProductSkuDuplicated) { + WithData(nameof(productId), productId); + WithData(nameof(serializedAttributeOptionIds), serializedAttributeOptionIds); } } } \ No newline at end of file