Tooark.Extensions
2.1.8
dotnet add package Tooark.Extensions --version 2.1.8
NuGet\Install-Package Tooark.Extensions -Version 2.1.8
<PackageReference Include="Tooark.Extensions" Version="2.1.8" />
<PackageVersion Include="Tooark.Extensions" Version="2.1.8" />
<PackageReference Include="Tooark.Extensions" />
paket add Tooark.Extensions --version 2.1.8
#r "nuget: Tooark.Extensions, 2.1.8"
#:package Tooark.Extensions@2.1.8
#addin nuget:?package=Tooark.Extensions&version=2.1.8
#tool nuget:?package=Tooark.Extensions&version=2.1.8
Tooark.Extensions
Biblioteca gerenciar extensões e utilitários, facilitando o desenvolvimento e a manutenção de projetos .NET.
Configuração
Para utilizar os resources disponíveis, adicione a seguinte linha no seu arquivo .csproj
:
<Target Name="CopyNugetContentFiles" AfterTargets="Build">
<ItemGroup>
<NugetContentFiles Include="$(NuGetPackageRoot)\**\Resources\**\*.json" />
</ItemGroup>
<Copy SourceFiles="@(NugetContentFiles)" DestinationFolder="$(OutDir)Resources" SkipUnchangedFiles="true" />
</Target>
Adicione a seguinte linha no seu arquivo Program.cs
:
// Importando o namespace necessário
using Tooark.Extensions.Injections;
// Nas suas configurações de serviços
services.AddTooarkExtensions();
Conteúdo
Extensões
As extensões disponíveis são:
1. Extensão de Enumeráveis
Funcionalidade: Ordenação de coleções de objetos por propriedades específicas e propriedades de sub classes. Suporta ordenação ascendente e descendente de coleções de objetos.
Métodos:
OrderByProperty<T>(string sortProperty)
: Ordena uma coleção de objetos de forma ascendente por uma propriedade específica.OrderByPropertyDescending<T>(string sortProperty)
: Ordena uma coleção de objetos de forma descendente por uma propriedade específica.
2. Configuração do JsonStringLocalizer (Extensão Localiza String dentro de Json)
Funcionalidade: Adiciona a injeção de dependência do serviço de localização de strings com base em arquivos JSON.
Métodos:
AddJsonStringLocalizer
: Adiciona a injeção de dependência do serviço de localização de strings com base em arquivos JSON.
3. Extensão Localiza String dentro de Json (Extensão para IStringLocalizer)
Funcionalidade: Utiliza os arquivos padrão de recursos multiculturais para localização de strings.
Métodos:
LocalizedString this[string name]
: Representa um valor localizado.LocalizedString this[string name, params object[] arguments]
: Representa um valor localizado com argumentos.GetAllStrings(bool includeParentCultures)
: Obtém todos os valores localizados. SeincludeParentCultures
utilizado para valores da culturadefault
casotrue
oucurrent
casofalse
.
4. Extensões de String
Funcionalidade: Extensões para manipulação de strings.
Métodos:
ToBase64
: Converte uma string para Base64.FromBase64
: Converte uma string Base64 de volta para uma string normal.ToSlug
: Converte uma string para um formato de slug.ToNormalize
: Normaliza uma string removendo espaços, convertendo para maiúscula e substituindo caracteres especiais.ToNormalizeRegex
: Normaliza uma string removendo espaços, convertendo para maiúscula e substituindo caracteres especiais usando expressões regulares.FromSnakeToPascalCase
: Converte uma string de snake_case para PascalCase.FromSnakeToCamelCase
: Converte uma string de snake_case para camelCase.FromSnakeToKebabCase
: Converte uma string de snake_case para kebab-case.FromPascalToSnakeCase
: Converte uma string de PascalCase para snake_case.FromCamelToSnakeCase
: Converte uma string de camelCase para snake_case.FromKebabToSnakeCase
: Converte uma string de kebab-case para snake_case.
Exemplos de Uso
Extensão de Enumeráveis
OrderByProperty com Parâmetro Simples:
using Tooark.Extensions;
List<MyObject> list = [{"Name": "B", "Age": 20}, {"Name": "A", "Age": 30}, {"Name": "C", "Age": 10}];
var sortedList = list.OrderByProperty("Name").toList();
// [{"Name": "A", "Age": 30}, {"Name": "B", "Age": 20}, {"Name": "C", "Age": 10}]
OrderByPropertyDescending com Parâmetro Simples:
using Tooark.Extensions;
List<MyObject> list = [{"Name": "B", "Age": 20}, {"Name": "A", "Age": 30}, {"Name": "C", "Age": 10}];
var sortedList = list.OrderByPropertyDescending("Name").toList();
// [{"Name": "C", "Age": 10}, {"Name": "B", "Age": 20}, {"Name": "A", "Age": 30}]
OrderByPropertyDescending com Parâmetro Complexo:
using Tooark.Extensions;
List<MyObject> list = [
{"Name": "B", "Age": 20, "Address": {"City": "City C"}},
{"Name": "A", "Age": 30, "Address": {"City": "City B"}},
{"Name": "C", "Age": 10, "Address": {"City": "City A"}}
];
var sortedList = list.OrderByProperty("Address.City").toList();
// [
// {"Name": "C", "Age": 10, "Address": {"City": "City A"}},
// {"Name": "A", "Age": 30, "Address": {"City": "City B"}},
// {"Name": "B", "Age": 20, "Address": {"City": "City C"}}
//]
Configuração do JsonStringLocalizer
using Microsoft.Extensions.DependencyInjection;
using Tooark.Extensions.Options;
using Tooark.Extensions.Injections;
var services = new ServiceCollection();
services.AddJsonStringLocalizer();
Extensão Localiza String dentro de Json (Extensões para IStringLocalizer)
Obter Valor Localizado:
using Tooark.Extensions;
var localizedString = _localizer["Field"]; // "Campo"
Obter Valor Localizado com Argumentos juntos:
using Tooark.Extensions;
var localizedString = _localizer["Field.Empty;Name"]; // "O campo Name está vazio"
Obter Valor Localizado com Argumentos:
using Tooark.Extensions;
var localizedString = _localizer["Field.Empty", "Name"]; // "O campo Name está vazio"
Extensões de String
ToBase64:
using Tooark.Extensions;
string value = "Hello World!";
string base64Value = value.ToBase64(); // SGVsbG8gV29ybGQh
FromBase64:
using Tooark.Extensions;
string base64Value = "SGVsbG8gV29ybGQh";
string normalValue = base64Value.FromBase64(); // Hello World!
ToSlug:
using Tooark.Extensions;
string value = "Hello World!";
string slugValue = value.ToSlug(); // hello-world
ToNormalize:
using Tooark.Extensions;
string value = "Olá Mundo!";
string normalizedValue = value.ToNormalize(); // OLAMUNDO
ToNormalizeRegex:
using Tooark.Extensions;
string value = "Olá Mundo!";
string normalizedValue = value.ToNormalizeRegex(); // OLAMUNDO
FromSnakeToPascalCase:
using Tooark.Extensions;
string value = "hello_world";
string pascalCaseValue = value.FromSnakeToPascalCase(); // HelloWorld
FromSnakeToCamelCase:
using Tooark.Extensions;
string value = "hello_world";
string camelCaseValue = value.FromSnakeToCamelCase(); // helloWorld
FromSnakeToKebabCase:
using Tooark.Extensions;
string value = "hello_world";
string kebabCaseValue = value.FromSnakeToKebabCase(); // hello-world
FromPascalToSnakeCase:
using Tooark.Extensions;
string value = "HelloWorld";
string snakeCaseValue = value.FromPascalToSnakeCase(); // hello_world
FromCamelToSnakeCase:
using Tooark.Extensions;
string value = "helloWorld";
string snakeCaseValue = value.FromCamelToSnakeCase(); // hello_world
FromKebabToSnakeCase:
using Tooark.Extensions;
string value = "hello-world";
string snakeCaseValue = value.FromKebabToSnakeCase(); // hello_world
Arquivos de Recursos Multiculturais
Dependências
- Microsoft.AspNetCore.Mvc.Core
- Microsoft.Extensions.Caching.Memory
- Microsoft.Extensions.Localization
- Tooark.Utils
Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests no repositório Tooark.Extensions.
Licença
Este projeto está licenciado sob a licença BSD 3-Clause. Veja o arquivo LICENSE para mais detalhes.
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. |
-
net8.0
- Microsoft.AspNetCore.Mvc.Core (>= 2.3.0)
- Microsoft.Extensions.Caching.Memory (>= 8.0.1)
- Microsoft.Extensions.Localization (>= 8.0.16)
- Tooark.Utils (>= 2.1.8)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Tooark.Extensions:
Package | Downloads |
---|---|
Tooark.ValueObjects
Package for managing predefined and validated Value Objects for .NET applications. |
|
Tooark.Dtos
Package for managing base DTOs in .NET applications. |
|
Tooark
Package with all Tooark resources for .NET applications. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
2.1.8 | 290 | 6/26/2025 |
2.1.7 | 262 | 6/17/2025 |
2.1.6 | 403 | 6/15/2025 |
2.1.5 | 172 | 6/14/2025 |
2.1.4 | 170 | 6/3/2025 |
2.1.3.3 | 165 | 6/3/2025 |
2.1.3.2 | 164 | 6/3/2025 |
2.1.3 | 159 | 6/3/2025 |
2.1.2 | 270 | 5/17/2025 |
2.1.1 | 105 | 5/3/2025 |
2.1.0 | 114 | 5/3/2025 |
2.0.8 | 117 | 4/26/2025 |
2.0.7 | 194 | 4/22/2025 |
2.0.6 | 196 | 4/20/2025 |
2.0.5 | 178 | 3/14/2025 |
2.0.4 | 166 | 3/14/2025 |
2.0.3 | 175 | 3/14/2025 |
2.0.2 | 172 | 3/13/2025 |
2.0.1 | 161 | 3/13/2025 |
2.0.0 | 467 | 3/13/2025 |