Files
admin/_docs/02_document/modules/common_business_exception.md
T
2026-04-16 06:25:36 +03:00

2.1 KiB

Module: Azaion.Common.BusinessException

Purpose

Custom exception type for domain-level errors, paired with an ExceptionEnum catalog of all business error codes.

Public Interface

BusinessException

Member Signature Description
Constructor BusinessException(ExceptionEnum exEnum) Creates exception with message from ExceptionEnum's [Description] attribute
ExceptionEnum ExceptionEnum ExceptionEnum { get; set; } The specific error code
GetMessage static string GetMessage(ExceptionEnum exEnum) Looks up human-readable message for an error code

ExceptionEnum

Value Code Description
NoEmailFound 10 No such email found
EmailExists 20 Email already exists
WrongPassword 30 Passwords do not match
PasswordLengthIncorrect 32 Password should be at least 8 characters
EmailLengthIncorrect 35 Email is empty or invalid
WrongEmail 37 (no description attribute)
HardwareIdMismatch 40 Hardware mismatch — unauthorized hardware
BadHardware 45 Hardware should be not empty
WrongResourceName 50 Wrong resource file name
NoFileProvided 60 No file provided

Internal Logic

Static constructor eagerly loads all ExceptionEnum descriptions into a dictionary via EnumExtensions.GetDescriptions<ExceptionEnum>(). Messages are retrieved by dictionary lookup with fallback to ToString().

Dependencies

  • EnumExtensions — for GetDescriptions<T>()

Consumers

  • BusinessExceptionHandler — catches and serializes to HTTP 409 response
  • UserService — throws for email/password/hardware validation failures
  • ResourcesService — throws for missing file uploads
  • FluentValidation validators — reference ExceptionEnum codes in .WithErrorCode()

Data Models

None.

Configuration

None.

External Integrations

None.

Security

Error codes are returned to the client via BusinessExceptionHandler. Codes are numeric and messages are user-facing.

Tests

None.