Acontplus.Utilities 1.2.0

There is a newer version of this package available.
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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Acontplus.Utilities" Version="1.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Acontplus.Utilities" Version="1.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Acontplus.Utilities" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Acontplus.Utilities --version 1.2.0
                    
#r "nuget: Acontplus.Utilities, 1.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Acontplus.Utilities@1.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Acontplus.Utilities&version=1.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Acontplus.Utilities&version=1.2.0
                    
Install as a Cake Tool

Acontplus.Utilities

NuGet .NET License

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 or IResult 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 helpers
  • FileExtensions - File name and byte array utilities
  • CompressionUtils - GZip/Deflate compression helpers
  • TextHandlers - String formatting and splitting
  • ApiResponseExtensions - API response helpers for MVC/Minimal APIs
  • DirectoryHelper / 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.