TKMaster.Common.Toolkit
1.0.9
See the version list below for details.
dotnet add package TKMaster.Common.Toolkit --version 1.0.9
NuGet\Install-Package TKMaster.Common.Toolkit -Version 1.0.9
<PackageReference Include="TKMaster.Common.Toolkit" Version="1.0.9" />
<PackageVersion Include="TKMaster.Common.Toolkit" Version="1.0.9" />
<PackageReference Include="TKMaster.Common.Toolkit" />
paket add TKMaster.Common.Toolkit --version 1.0.9
#r "nuget: TKMaster.Common.Toolkit, 1.0.9"
#:package TKMaster.Common.Toolkit@1.0.9
#addin nuget:?package=TKMaster.Common.Toolkit&version=1.0.9
#tool nuget:?package=TKMaster.Common.Toolkit&version=1.0.9
TKMaster.Common.Toolkit
TKMaster.Common é uma biblioteca reutilizável desenvolvida para projetos em C#. Ela centraliza componentes comuns e utilitários que podem ser facilmente integrados em qualquer aplicação, promovendo reutilização, padronização e produtividade.
📦 Estrutura dos Projetos
Esta solução é composta por vários projetos do tipo Class Library, cada um com responsabilidades bem definidas:
🔹 Util
- Extensions: Métodos de extensão como
GetDescription
,GetTypeAttribute
, eNotFound
(com suporte a gênero). - Mensagens e Responses: Utilitários para mensagens consistentes e respostas padronizadas.
- LoggerFactoryConfiguration: Configuração e personalização do sistema de logging.
- GlobalizationConfiguration: Suporte à internacionalização, com recursos de tradução e formatos regionais.
🔹 Domain
- Interfaces: Contratos de serviços e entidades.
- Services: Lógica de negócio reutilizável.
- Entities: Representações de dados e modelos base.
- Notifications: Sistema de notificações para regras de negócio e feedbacks.
🔹 Logger
- CustomLogger: Implementação de logger customizado.
- CustomLoggerProvider: Provedor adaptável para integração com diversos sistemas de log.
- CustomLoggerProviderConfiguration: Configurações ajustáveis para múltiplos ambientes.
⚙️ Funcionalidades Principais
✅ QueryHelper - Filtros e Ordenação Dinâmica
ApplyFilter<TFilter, TEntity>
Aplica filtros dinâmicos em uma consulta IQueryable<TEntity>
usando um objeto TFilter
. Apenas propriedades marcadas com [Filterable]
são consideradas.
Características:
- Suporte a
==
,>=
,<=
,Contains
- Intervalos com sufixos
From
eTo
- Ignora propriedades nulas ou vazias
Exemplo:
var result = QueryHelper.ApplyFilter<CourseFilter, CourseEntity>(query, filter);
ApplySorting<T>
Aplica ordenação dinâmica com base na propriedade e direção informada (asc
ou desc
).
Exemplo:
var sorted = QueryHelper.ApplySorting<CourseEntity>(query, "Title", "desc");
💡 Extensões Incluídas
NotFound(this string subject, bool isFeminine)
: Gera mensagens padronizadas com concordância de gênero.- Diversos métodos utilitários para manipulação de strings, enums e expressões.
📦 Dependências Necessárias
dotnet add package System.Linq.Dynamic.Core
using TKMaster.Common.Util.Helpers;
🚀 Sugestões Futuras
- Suporte a
List<int>
eList<string>
comContains
- Combinação de filtros
AND
/OR
- Tradução de nomes de campos com
[Filterable("Contains", Target = "Title,Description")]
- Integração com Swagger para exibição de filtros dinamicamente
🛠️ Tecnologias
📄 Licença
Este projeto é licenciado sob os termos da licença MIT. Consulte o arquivo LICENSE.txt para mais informações.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.