mirror of
https://github.com/azaion/admin.git
synced 2026-04-23 09:16:33 +00:00
d320d6dd59
Made-with: Cursor
2.1 KiB
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— forGetDescriptions<T>()
Consumers
BusinessExceptionHandler— catches and serializes to HTTP 409 responseUserService— throws for email/password/hardware validation failuresResourcesService— throws for missing file uploads- FluentValidation validators — reference
ExceptionEnumcodes 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.