Routya.ResultKit
1.0.0
See the version list below for details.
dotnet add package Routya.ResultKit --version 1.0.0
NuGet\Install-Package Routya.ResultKit -Version 1.0.0
<PackageReference Include="Routya.ResultKit" Version="1.0.0" />
<PackageVersion Include="Routya.ResultKit" Version="1.0.0" />
<PackageReference Include="Routya.ResultKit" />
paket add Routya.ResultKit --version 1.0.0
#r "nuget: Routya.ResultKit, 1.0.0"
#:package Routya.ResultKit@1.0.0
#addin nuget:?package=Routya.ResultKit&version=1.0.0
#tool nuget:?package=Routya.ResultKit&version=1.0.0
ðĶ Routya.ResultKit
**Lightweight result wrapper and validation toolkit for C# **
Brings clean Result<T> handling and extensible validation with custom attributes.
âĻ Features
â
Consistent Result<T> response pattern
â
One-line .Validate() extension for request models
â
Rich built-in and custom validation attributes
ðĨ Installation
dotnet add package Routya.ResultKit --version 1.0.0
ð Quick Start
1. Define Your Request Model (with Custom Validation)
using Routya.ResultKit.Attributes;
using System.ComponentModel.DataAnnotations;
private enum UserRole { Admin, User, Guest }
private class TestModel
{
[Required]
public string Name { get; set; }
[EmailAddress]
public string Email { get; set; }
[Range(18, 120)]
public int Age { get; set; }
[StringEnum(typeof(UserRole))]
public string Role { get; set; }
[Required]
public string Password { get; set; }
[Compare("Password")]
public string ConfirmPassword { get; set; }
public decimal MinPurchase { get; set; }
[GreaterThan("MinPurchase")]
public decimal MaxPurchase { get; set; }
}
2. Validate and Return
app.MapPost("/users", (CreateUserRequest request) =>
{
var validationResult = request.Validate();
if (!validationResult.Success)
return Results.BadRequest(validationResult);
return Results.Ok(Result.Ok(new { Id = 1 }));
});
â Successful Response Example
{
"Success": true,
"Data": {
"Name": "Henry",
"Email": "henry@example.com",
"Age": 30,
"Role": "Admin",
"Password": "abc123",
"ConfirmPassword": "abc123",
"MinPurchase": 100.0,
"MaxPurchase": 200.0
},
"Error": null
}
â Validation Error Response Example
{
"Success": false,
"Data": null,
"Error": {
"Title": "Validation Failed",
"Status": 400,
"Extensions": {
"errors": {
"Name": [
"The Name field is required."
],
"Email": [
"The Email field is not a valid e-mail address."
],
"Age": [
"The field Age must be between 18 and 120."
],
"Role": [
"Role must be one of: Admin, User, Guest"
],
"ConfirmPassword": [
"'ConfirmPassword' and 'Password' do not match."
],
"MaxPurchase": [
"MaxPurchase must be greater than MinPurchase"
]
}
}
}
}
ð ïļ Built-in Validation Attributes
Routya.ResultKit includes powerful validation attributes ready to use:
| Attribute | Purpose |
|---|---|
[GreaterThan("OtherProp")] |
Ensure a property is greater than another |
[LessThan("OtherProp")] |
Ensure a property is less than another |
[RequiredIf("OtherProp", "Value")] |
Conditionally require a property |
[RequiredIfEmpty("OtherProp")] |
Require a property if another is empty |
[StringEnum(typeof(EnumType))] |
Ensure a string matches an Enum name |
[MatchRegex("pattern")] |
Validate a string against a regex |
[MinItems(count)] |
Validate minimum items in a collection |
[MaxItems(count)] |
Validate maximum items in a collection |
[ValidStartEndDateRange("Start", "End")] |
Validate that StartDate is before EndDate (This is a class level attribute) |
[ValidDateTimeOffsetRange("End")] |
Validate DateTimeOffset ranges |
[ValidDateTimeRange("End")] |
Validate DateTimeOffset ranges |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.ComponentModel.Annotations (>= 5.0.0)
-
.NETStandard 2.1
- System.ComponentModel.Annotations (>= 5.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Routya.ResultKit:
| Package | Downloads |
|---|---|
|
EffinitiveFramework.Core
Ultra-high-performance HTTP/1.1 and HTTP/2 web framework for .NET 8+. Built from scratch for maximum speed with zero-allocation routing, custom HTTP/2 implementation with HPACK compression, and sub-50Ξs response times. 6-10x faster than ASP.NET Core for API workloads. |
|
|
Routya.ResultKit.AspNetCore
ASP.NET Core integration for Routya.ResultKit with Microsoft ProblemDetails support, exception handling middleware, and IResult/IActionResult extensions. |
GitHub repositories
This package is not used by any popular GitHub repositories.