Browse Source

Using Error Codes for Exceptions ex:Products

pull/122/head
yinchang0626 4 years ago
parent
commit
4b6fdd8759
  1. 2
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/EShopProductsDomainSharedModule.cs
  2. 11
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/Localization/Products/en.json
  3. 7
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/ProductsErrorCodes.cs
  4. 4
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/CategoryManager.cs
  5. 4
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Categories/DuplicateCategoryUniqueNameException.cs
  6. 6
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/DuplicatedProductUniqueNameException.cs
  7. 11
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/InventoryChangeFailedException.cs
  8. 5
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/NonexistentProductGroupException.cs
  9. 4
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductDetailHasBeenUsedException.cs
  10. 5
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductSkuCodeDuplicatedException.cs
  11. 5
      modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp/EShop/Products/Products/ProductSkuDuplicatedException.cs

2
modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain.Shared/EasyAbp/EShop/Products/EShopProductsDomainSharedModule.cs

@ -34,7 +34,7 @@ namespace EasyAbp.EShop.Products
Configure<AbpExceptionLocalizationOptions>(options =>
{
options.MapCodeNamespace("EasyAbp.EShop.Products", typeof(ProductsResource));
options.MapCodeNamespace("EasyAbp.EShop.Products.ErrorCodes", typeof(ProductsResource));
});
}
}

11
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}"
}
}

7
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...
}
}

4
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);

4
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);
}
}
}

6
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);
}
}
}

11
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);
}
}
}

5
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);
}
}
}

4
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);
}
}
}

5
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);
}
}
}

5
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);
}
}
}
Loading…
Cancel
Save