Acontplus.Utilities
1.2.0
See the version list below for details.
dotnet add package Acontplus.Utilities --version 1.2.0
NuGet\Install-Package Acontplus.Utilities -Version 1.2.0
<PackageReference Include="Acontplus.Utilities" Version="1.2.0" />
<PackageVersion Include="Acontplus.Utilities" Version="1.2.0" />
<PackageReference Include="Acontplus.Utilities" />
paket add Acontplus.Utilities --version 1.2.0
#r "nuget: Acontplus.Utilities, 1.2.0"
#:package Acontplus.Utilities@1.2.0
#addin nuget:?package=Acontplus.Utilities&version=1.2.0
#tool nuget:?package=Acontplus.Utilities&version=1.2.0
Acontplus.Utilities
A comprehensive .NET 9+ utility library providing common functionality for enterprise applications. Modern async, extension methods, minimal API support, and more.
🚀 Features
- Encryption - Data encryption/decryption utilities
- External Validations - Third-party validation integrations
- Barcode Generation - Barcode creation and processing
- Custom Logging - Enhanced logging capabilities
- Enum Extensions - Enhanced enum functionality
- Picture Helper - Image processing utilities
- Text Handlers - Text manipulation and processing
- API Response Extensions - Convert results to
IActionResult
orIResult
for MVC/Minimal APIs - Pagination & Metadata - Helpers for API metadata, pagination, and diagnostics
📦 Installation
NuGet Package Manager
Install-Package Acontplus.Utilities
.NET CLI
dotnet add package Acontplus.Utilities
PackageReference
<ItemGroup>
<PackageReference Include="Acontplus.Utilities" Version="1.0.12" />
</ItemGroup>
🎯 Quick Start
1. API Response Extensions (Minimal API)
using Acontplus.Utilities.Extensions;
app.MapGet("/example", () =>
{
var response = new ApiResponse<string>("Hello World");
return response.ToMinimalApiResult();
});
2. API Response Extensions (Controller)
using Acontplus.Utilities.Extensions;
public IActionResult Get()
{
var response = new ApiResponse<string>("Hello World");
return response.ToActionResult();
}
3. Encryption Example
var encryptionService = new SensitiveDataEncryptionService();
byte[] encrypted = await encryptionService.EncryptToBytesAsync("password", "data");
string decrypted = await encryptionService.DecryptFromBytesAsync("password", encrypted);
4. Pagination Metadata Example
var metadata = new Dictionary<string, object>()
.WithPagination(page: 1, pageSize: 10, totalItems: 100);
🗃️ Data Utilities
DataConverters
using Acontplus.Utilities.Data;
// Convert DataTable to JSON
string json = DataConverters.DataTableToJson(myDataTable);
// Convert DataSet to JSON
string json = DataConverters.DataSetToJson(myDataSet);
// Convert JSON to DataTable
DataTable table = DataConverters.JsonToDataTable(jsonString);
// Serialize any object (with DataTable/DataSet support)
string json = DataConverters.SerializeObjectCustom(myObject);
// Serialize and sanitize complex objects
string json = DataConverters.SerializeSanitizedData(myObject);
DataTableMapper
using Acontplus.Utilities.Data;
// Map a DataRow to a strongly-typed model
var model = DataTableMapper.MapDataRowToModel<MyModel>(dataRow);
// Map a DataTable to a list of models
List<MyModel> models = DataTableMapper.MapDataTableToList<MyModel>(dataTable);
🧩 JSON Utilities
JsonHelper
using Acontplus.Utilities.Json;
// Validate JSON
var result = JsonHelper.ValidateJson(jsonString);
if (!result.IsValid) Console.WriteLine(result.ErrorMessage);
// Get a property value from JSON
string? value = JsonHelper.GetJsonProperty<string>(jsonString, "propertyName");
// Merge two JSON objects
string merged = JsonHelper.MergeJson(json1, json2);
// Compare two JSON strings (ignoring property order)
bool areEqual = JsonHelper.AreEqual(json1, json2);
JsonManipulationExtensions
using Acontplus.Utilities.Json;
// Validate JSON using extension
bool isValid = jsonString.IsValidJson();
// Get property value using extension
int? id = jsonString.GetJsonProperty<int>("id");
// Merge JSON using extension
string merged = json1.MergeJson(json2);
// Compare JSON using extension
bool equal = json1.JsonEquals(json2);
🔄 Object Mapping
ObjectMapper
using Acontplus.Utilities.Mapping;
// Map between objects (AutoMapper-like)
var target = ObjectMapper.Map<SourceType, TargetType>(sourceObject);
// Configure custom mapping
ObjectMapper.CreateMap<SourceType, TargetType>()
.ForMember(dest => dest.SomeProperty, src => src.OtherProperty)
.Ignore(dest => dest.IgnoredProperty);
// Map with configuration
var mapped = ObjectMapper.Map<SourceType, TargetType>(sourceObject);
🔧 Advanced Usage
File Name Sanitization
string safeName = FileExtensions.SanitizeFileName("my*illegal:file?.txt");
Base64 Conversion
string base64 = FileExtensions.GetBase64FromByte(myBytes);
Compression Utilities
byte[] compressed = CompressionUtils.CompressGZip(data);
byte[] decompressed = CompressionUtils.DecompressGZip(compressed);
📚 API Documentation
SensitiveDataEncryptionService
- AES encryption/decryption helpersFileExtensions
- File name and byte array utilitiesCompressionUtils
- GZip/Deflate compression helpersTextHandlers
- String formatting and splittingApiResponseExtensions
- API response helpers for MVC/Minimal APIsDirectoryHelper
/EnvironmentHelper
- Runtime and environment utilities
🤝 Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Development Setup
git clone https://github.com/Acontplus-S-A-S/acontplus-dotnet-libs.git
cd acontplus-dotnet-libs
dotnet restore
dotnet build
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🆘 Support
- 📧 Email: proyectos@acontplus.com
- 🐛 Issues: GitHub Issues
- 📖 Documentation: Wiki
👨💻 Author
Ivan Paz - @iferpaz7
🏢 Company
Acontplus S.A.S. - Enterprise software solutions
Built with ❤️ for the .NET community
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. 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. |
-
net9.0
- Acontplus.Core (>= 1.3.0)
- BCrypt.Net-Next (>= 4.0.3)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Acontplus.Utilities:
Package | Downloads |
---|---|
Acontplus.FactElect
Comprehensive .NET 9+ library for electronic invoicing and SRI integration in Ecuador. Includes models, services, XML, validation, and SRI web service support. |
|
Acontplus.Reports
Modern .NET 9+ library for RDLC report generation, export, and management. Includes PDF/Excel export, template support, and ReportViewer integration. |
|
Acontplus.Notifications
Modern .NET 9+ library for notifications: email, MailKit, Amazon SES, WhatsApp, and push. Includes templates, queueing, and advanced delivery options. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.2.2 | 48 | 7/15/2025 |
1.2.1 | 60 | 7/15/2025 |
1.2.0 | 66 | 7/14/2025 |
1.1.4 | 69 | 7/14/2025 |
1.1.3 | 89 | 7/11/2025 |
1.1.2 | 88 | 7/11/2025 |
1.1.1 | 141 | 7/10/2025 |
1.1.0 | 135 | 7/10/2025 |
1.0.13 | 129 | 7/10/2025 |
1.0.12 | 147 | 7/9/2025 |
1.0.11 | 174 | 7/7/2025 |
1.0.10 | 140 | 7/6/2025 |
1.0.9 | 145 | 7/6/2025 |
1.0.8 | 95 | 7/4/2025 |
1.0.7 | 146 | 7/3/2025 |
1.0.6 | 149 | 7/2/2025 |
1.0.5 | 148 | 7/2/2025 |
1.0.4 | 146 | 7/1/2025 |
Updated for .NET 9+ with async/await, extension methods, and enhanced documentation.