ITLab.Template.DevPack.Helpers
Contains framework-light utility helpers for reflection, hashing, string manipulation, entity operations, permissions and domain support.
Componentes
| Tipo | Nome | Responsabilidade |
|---|---|---|
| Static Class | ColorHelper | Generates and maps color hex values from a built-in palette |
| Class | ConverterHelper | Converts objects to/from flat key-value dictionaries via reflection |
| Static Class | CultureHelper | Culture and localization support utilities |
| Static Class | DateTimeHelper | Min/Max utilities for DateTime values |
| Static Class | DateTimeOffsetHelper | Min/Max utilities for DateTimeOffset values |
| Static Class | DocumentHelper | Brazilian fiscal document validation/normalization (IsCpfValid, IsCnpjValid, NormalizeCpf, NormalizeCnpj) |
| Static Class | DomainEventHelper | Domain-event lifecycle helper operations |
| Static Class | EntityHelper | Metadata inspection, equality, identifier assignment and diff utilities for entities |
| Static Class | EnumHelper | Enum metadata, display name resolution and value conversion utilities |
| Static Class | HashHelper | SHA-256 and other hashing utilities |
| Static Class | ObjectHelper | Reflective property assignment and object-to-dictionary conversion |
| Enum | EPermissionsGeneratorType | Output formats for permission generation: Json, TsUnion, TsShape |
| Static Class | PermissionsGenerator | Generates permission metadata from nested static classes (JSON object, TypeScript union type, TypeScript object shape) |
| Static Class | ReflectionHelper | Property discovery, type inspection and assignability utilities |
| Static Class | StaticHelper | Extracts constant fields and permission entries from types via reflection |
| Static Class | StringHelper | String generation, normalization and manipulation utilities |
| Static Class | TypeHelper | Runtime type inspection and conversion utilities |
Nota de coabitação:
DateTimeHelpereDateTimeOffsetHelpervivem ambos emDateTimeHelper.cs(mesmo namespaceHelpers). O arquivo carrega as duas classes para manter um únicousingno consumidor.
Como usar
// Generate a random color for UI avatar assignment.
var hex = ColorHelper.GetRandomColor();
// Generate a TypeScript shape file from a nested permissions class at build time.
var ts = PermissionsGenerator.Generate(
typeof(MyAppPermissions),
EPermissionsGeneratorType.TsShape,
"Permissions");
File.WriteAllText("permissions.ts", ts);
// Compute entity diff for audit or change-tracking.
var changes = EntityHelper.GetChangedProperties(original, updated);
// Resolve enum display name for UI rendering.
var label = EnumHelper.GetDisplayName(EOrderStatus.Shipped);
// Validate a Brazilian CPF without throwing — useful for FluentValidation rules.
RuleFor(x => x.Cpf).Must(DocumentHelper.IsCpfValid).WithMessage("CPF inválido.");
// Normalize before persisting in a value object constructor.
var stored = DocumentHelper.NormalizeCpf("529.982.247-25"); // "52998224725"
O que não fazer
- Do not use helpers as a dumping ground for domain-specific logic.
- Do not add dependencies to heavy frameworks in this layer.
- Do not use
ConverterHelperfor deep-graph serialization — it is flat-key-value only.
Extensão pelo produto
- Products should prefer composition over modifying shared helpers directly.
- New helper methods should stay pure or clearly document side effects.