Nosabit.Core
1.1.3
See the version list below for details.
dotnet add package Nosabit.Core --version 1.1.3
NuGet\Install-Package Nosabit.Core -Version 1.1.3
<PackageReference Include="Nosabit.Core" Version="1.1.3" />
<PackageVersion Include="Nosabit.Core" Version="1.1.3" />
<PackageReference Include="Nosabit.Core" />
paket add Nosabit.Core --version 1.1.3
#r "nuget: Nosabit.Core, 1.1.3"
#addin nuget:?package=Nosabit.Core&version=1.1.3
#tool nuget:?package=Nosabit.Core&version=1.1.3
Nosabit.Core
Una biblioteca de utilidades completa para aplicaciones .NET que simplifica tareas comunes de desarrollo. Incluye herramientas para manipulación de fechas, comparación de datos, seguridad, generación de contraseñas, conversión de tipos, manejo de HTTP, integración con React, procesamiento de formularios, y mucho más.
Instalación
Package Manager
Install-Package Nosabit.Core
.NET CLI
dotnet add package Nosabit.Core
PackageReference
<PackageReference Include="Nosabit.Core" />
Contenido
Esta biblioteca se divide en varias categorías de utilidades:
- Manipulación de fechas: Conversión y formateo de fechas
- Comparación de datos: Utilidades para comparación flexible
- Seguridad: Encriptación y protección de datos
- Conversión y procesamiento: Transformaciones de datos
- Extensiones HTTP y JSON: Manejo de datos web
- Componentes para UI: Integración con React y otras interfaces
- DTOs y modelos: Objetos de transferencia predefinidos
Ejemplos de uso
DateTimeParse - Formateo y conversión de fechas
// Convertir DateTime a string en formato español (dd/MM/yyyy)
DateTime fecha = DateTime.Now;
string fechaES = fecha.AsDateEs();
// Resultado: "21/03/2025"
// Convertir DateTime a string en formato inglés (MM/dd/yyyy)
string fechaEN = fecha.AsDateEN();
// Resultado: "03/21/2025"
// Convertir DateTime a string en formato para base de datos (yyyy-MM-dd)
string fechaDB = fecha.AsDateDB();
// Resultado: "2025-03-21"
// Convertir string a DateTime desde formato español
string textoFecha = "21/03/2025";
DateTime? fechaDesdeString = textoFecha.ToDateEs();
// Trabajar con zonas horarias
DateTime fechaUTC = DateTime.UtcNow;
DateTime fechaCR = fechaUTC.GetTimeZoneCR(); // Convertir a hora de Costa Rica
CompareRequest - Utilidades de comparación
// Comparar cadenas con búsqueda insensible a mayúsculas/minúsculas
bool contiene = CompareRequest.CompareSearch("Hola Mundo", "mundo");
// Resultado: true
// Comparar igualdad exacta (insensible a mayúsculas/minúsculas)
bool esIgual = CompareRequest.CompareEqualsSearch("Hola", "hola");
// Resultado: true
// Comparar un valor booleano con una cadena de búsqueda
bool comparaBool = CompareRequest.CompareSearch(true, "activo", "Activo", "Inactivo");
// Compara si el texto correspondiente al valor booleano contiene el término de búsqueda
// Comparar valores numéricos
bool comparaNumero = CompareRequest.CompareSearch(12345, "123");
// Resultado: true
SecurityEncrytor - Encriptación y seguridad
// Encriptar texto con AES
string textoSensible = "contraseña123";
string textoEncriptado = textoSensible.ToEncriptarAES();
// Encriptar texto con Base64
string textoSimple = "texto secreto";
string base64 = textoSimple.ToEncriptar();
// Desencriptar texto Base64
string original = base64.ToDesEncriptar();
// Resultado: "texto secreto"
CreatePassword - Generación de contraseñas
// Generar una contraseña aleatoria segura
string nuevaContraseña = CreatePassword.Generate();
// Resultado: algo como "aB3x7Z" (incluye minúsculas, mayúsculas y números)
ToIsNull - Manejo de valores nulos
// Verificar si una cadena tiene valor
string? texto = null;
bool tieneValor = texto.HasValue(); // Devuelve false
// Obtener valor o cadena vacía
string valorSeguro = texto.Value(); // Devuelve ""
// Convertir a nullable
string? otroTexto = " Hola ";
string? textoNullable = otroTexto.ToStringNullable(); // Devuelve "Hola" (trimmed)
// Conversiones a tipos numéricos
string numero = "123";
int? valorInt = numero.ToIntNullable(); // Devuelve 123
decimal valorDecimal = numero.ToDecimal(); // Devuelve 123.0m
ConvertList - Conversión de colecciones
// Convertir una lista a DataTable
List<MiClase> listaItems = new List<MiClase>
{
new MiClase { Id = 1, Nombre = "Item 1" },
new MiClase { Id = 2, Nombre = "Item 2" }
};
DataTable tabla = listaItems.ToDataTableGet();
// La tabla tendrá columnas Id y Nombre, con los valores correspondientes
HttpQuery - Construcción de consultas HTTP
// Crear una cadena de consulta desde un objeto
var parametros = new
{
Nombre = "Juan Pérez",
Edad = 30,
Activo = true
};
string queryString = HttpQuery.Create(parametros);
// Resultado: "Nombre=Juan%20P%C3%A9rez&Edad=30&Activo=true"
ForEachExtensions - Extensiones para iteración
// Iteración con índice
List<string> items = new List<string> { "uno", "dos", "tres" };
// Usando WithIndex
foreach (var (item, index) in items.WithIndex())
{
Console.WriteLine($"Índice {index}: {item}");
}
// Usando ForEachWithIndex
items.ForEachWithIndex((item, index) => {
Console.WriteLine($"Índice {index}: {item}");
});
ReactTableRequestDto - Integración con React Table
// En un controlador ASP.NET Core
[HttpPost]
public IActionResult GetData()
{
// Crear objeto de solicitud a partir de la petición HTTP
var request = new ReactTableRequestDto(Request);
// Obtener datos (ejemplo)
var datos = _servicio.ObtenerDatos();
// Aplicar filtrado según el término de búsqueda
if (!string.IsNullOrEmpty(request.Search))
{
datos = datos.Where(d => request.CompareSearch(d.Nombre)).ToList();
}
// Crear respuesta paginada
var resultado = new ReactTableResultDto<MiDto>(datos, request);
return Ok(resultado);
}
ConnectionStringProtector - Protección de cadenas de conexión
// Configuración en Startup.cs
services.AddDataProtection();
services.AddScoped<IConnectionStringProtector>(provider => {
var dataProtectionProvider = provider.GetRequiredService<IDataProtectionProvider>();
var protector = dataProtectionProvider.CreateProtector("ConnectionStrings");
return new ConnectionStringProtector(protector);
});
// Uso en un servicio
public class MiServicio
{
private readonly IConnectionStringProtector _protector;
public MiServicio(IConnectionStringProtector protector)
{
_protector = protector;
}
public void UsarConexion(string connectionString)
{
// Desproteger la cadena de conexión si está protegida
string conexionSegura = _protector.UnProtect(connectionString);
// Usar la cadena de conexión desprotegida
}
}
ToSerializeJson - Serialización JSON
// Serializar un objeto a JSON
var miObjeto = new { Nombre = "Juan", Edad = 30 };
string json = miObjeto.AsSerializeJson();
// Resultado: {"Nombre":"Juan","Edad":30}
// Serializar una lista
List<int> numeros = new List<int> { 1, 2, 3 };
string jsonLista = numeros.AsSerializeJson();
// Resultado: [1,2,3]
// Deserializar JSON a un objeto
string jsonString = "{\"Nombre\":\"María\",\"Edad\":25}";
MiClase? objeto = jsonString.AsDeserializeJson<MiClase>();
Modelos de resultado (Result DTOs)
// Crear un resultado exitoso
var datos = new MiDto { Id = 1, Nombre = "Test" };
var resultado = new ResultDto<MiDto>(datos);
// Crear un resultado con error
try
{
// Alguna operación que puede fallar
}
catch (Exception ex)
{
return new ResultDto<MiDto>(ex);
// Tendrá el código y mensaje de error
}
// Para colecciones
var listaResultado = new ResultsDto<MiDto>(miListaDeDatos);
Todas las utilidades disponibles
Core
- Compare.cs: Utilidades para comparación de datos
- ConvertList.cs: Conversión entre listas y DataTable
- CreatePassword.cs: Generación de contraseñas seguras
- DateTimeParse.cs: Manipulación y formateo de fechas
- ForEachExtensions.cs: Extensiones para iteración de colecciones
- HttpQuery.cs: Construcción de consultas HTTP
- SecurityEncrytor.cs: Encriptación y seguridad
- ToIsNull.cs: Manejo de valores nulos o vacíos
- ToSerializeJson.cs: Serialización y deserialización JSON
- TypeTableIgnoreAttribute.cs: Atributo para excluir propiedades en conversiones
App
- ConnectionStringProtector.cs: Protección de cadenas de conexión
- EnumErrorBD.cs: Enumeración de códigos de error de base de datos
- EnumMimeTypes.cs: Constantes para tipos MIME
DTOs
- ApexChartsDtos.cs: DTOs para gráficos Apex
- DBEntity.cs: Entidades base con manejo de errores
- FromFormDataArray.cs: DTOs para datos de formulario
- IFormFileInfo.cs: Información de archivos de formulario
- LookupDto.cs: DTOs para operaciones de búsqueda
- ReactSelectItemDto.cs: DTOs para componentes React Select
- ReactTableDto.cs: DTOs para tablas React
- ResultDto.cs: DTOs para resultados de operaciones
- SelectItemDto.cs: DTOs para elementos de selección
Licencia
Este proyecto está licenciado bajo la Licencia MIT.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. 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. |
-
net9.0
- System.Linq.Dynamic.Core (>= 1.6.0.2)
- System.Text.Json (>= 9.0.3)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on Nosabit.Core:
Package | Downloads |
---|---|
Nosabit.NetReact
Nosabit.NetReact es una biblioteca que facilita la integración entre ASP.NET Core y aplicaciones React. Proporciona extensiones para el manejo de sesiones, procesamiento de formularios, codificación/decodificación de parámetros de consulta, mensajería entre backend y frontend, y automatización de scripts NPM durante el desarrollo. Incluye atributos personalizados para endpoints, decodificación de parámetros y propiedades React, así como utilidades para la manipulación de archivos Excel y mejoras en la respuesta HTTP. |
|
Nosabit.Adapters.Persistence.SqlServer.RepositoryPattern.Abstractions
Biblioteca de abstracciones para implementar el patrón Repository con SQL Server en aplicaciones .NET. Define una interfaz genérica IRepo con operaciones CRUD y consultas complejas para entidades, incluyendo mapeo personalizado, consultas con parámetros dinámicos y soporte para múltiples esquemas y procedimientos almacenados. Esta biblioteca facilita la separación entre la lógica de acceso a datos y la lógica de negocio, mejorando la testabilidad y mantenibilidad del código. |
|
Nosabit.Adapters.Persistence.SqlServer.Abstractions
Nosabit.Adapters.Persistence.SqlServer.Abstractions es una biblioteca de abstracciones para acceso a datos SQL Server que define interfaces para interactuar con bases de datos mediante Dapper. Este paquete proporciona solo las definiciones de interfaces que pueden ser implementadas en paquetes concretos, facilitando la inyección de dependencias y las pruebas unitarias en aplicaciones .NET. |
|
Nosabit.Adapters.Persistence.SqlServer.RepositoryPattern
Package Description |
|
Nosabit.Adapters.Persistence.Mail
Implementación de servicios de correo electrónico para aplicaciones .NET basada en las abstracciones de Nosabit.Adapters.Persistence.Mail.Abstractions. Proporciona un servicio completo para enviar correos con múltiples configuraciones SMTP, soporte para destinatarios múltiples, copias, adjuntos y contenido HTML. Incluye extensiones para facilitar la configuración a través de appsettings.json y la inyección de dependencias en aplicaciones ASP.NET Core. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.2.3 | 93 | 4/1/2025 |
1.2.2 | 73 | 4/1/2025 |
1.2.1 | 287 | 3/23/2025 |
1.2.0 | 171 | 3/22/2025 |
1.1.8 | 148 | 3/22/2025 |
1.1.6 | 140 | 3/22/2025 |
1.1.5 | 130 | 3/22/2025 |
1.1.4 | 139 | 3/22/2025 |
1.1.3 | 137 | 3/22/2025 |
1.1.2 | 205 | 3/21/2025 |
1.1.1 | 106 | 3/21/2025 |
1.1.0 | 106 | 3/21/2025 |
1.0.4 | 159 | 3/20/2025 |
1.0.3 | 129 | 3/20/2025 |
1.0.2 | 141 | 3/19/2025 |
1.0.1 | 136 | 3/19/2025 |
1.0.0 | 131 | 3/19/2025 |