Pular para o conteúdo principal
Versão: main (dev) 🚧

ITLab.Template.DevPack.Helpers

Contains framework-light utility helpers for reflection, hashing, string manipulation, entity operations, permissions and domain support.

Componentes

TipoNomeResponsabilidade
Static ClassColorHelperGenerates and maps color hex values from a built-in palette
ClassConverterHelperConverts objects to/from flat key-value dictionaries via reflection
Static ClassCultureHelperCulture and localization support utilities
Static ClassDateTimeHelperMin/Max utilities for DateTime values
Static ClassDateTimeOffsetHelperMin/Max utilities for DateTimeOffset values
Static ClassDocumentHelperBrazilian fiscal document validation/normalization (IsCpfValid, IsCnpjValid, NormalizeCpf, NormalizeCnpj)
Static ClassDomainEventHelperDomain-event lifecycle helper operations
Static ClassEntityHelperMetadata inspection, equality, identifier assignment and diff utilities for entities
Static ClassEnumHelperEnum metadata, display name resolution and value conversion utilities
Static ClassHashHelperSHA-256 and other hashing utilities
Static ClassObjectHelperReflective property assignment and object-to-dictionary conversion
EnumEPermissionsGeneratorTypeOutput formats for permission generation: Json, TsUnion, TsShape
Static ClassPermissionsGeneratorGenerates permission metadata from nested static classes (JSON object, TypeScript union type, TypeScript object shape)
Static ClassReflectionHelperProperty discovery, type inspection and assignability utilities
Static ClassStaticHelperExtracts constant fields and permission entries from types via reflection
Static ClassStringHelperString generation, normalization and manipulation utilities
Static ClassTypeHelperRuntime type inspection and conversion utilities

Nota de coabitação: DateTimeHelper e DateTimeOffsetHelper vivem ambos em DateTimeHelper.cs (mesmo namespace Helpers). O arquivo carrega as duas classes para manter um único using no 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 ConverterHelper for 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.