Arc4u.AspNetCore.Results
8.2.0-preview25
Prefix Reserved
See the version list below for details.
dotnet add package Arc4u.AspNetCore.Results --version 8.2.0-preview25
NuGet\Install-Package Arc4u.AspNetCore.Results -Version 8.2.0-preview25
<PackageReference Include="Arc4u.AspNetCore.Results" Version="8.2.0-preview25" />
paket add Arc4u.AspNetCore.Results --version 8.2.0-preview25
#r "nuget: Arc4u.AspNetCore.Results, 8.2.0-preview25"
// Install Arc4u.AspNetCore.Results as a Cake Addin #addin nuget:?package=Arc4u.AspNetCore.Results&version=8.2.0-preview25&prerelease // Install Arc4u.AspNetCore.Results as a Cake Tool #tool nuget:?package=Arc4u.AspNetCore.Results&version=8.2.0-preview25&prerelease
Results
ProblemDetails
Implement extension methods for ProblemDetails
to make it easier to create ProblemDetails
instances.
ProblemDetails is a simple POCO object and this package adds a fluent Api to create one.
Classicaly we have
var problemDetails = new ProblemDetails
{
Title = "Some title",
Detail = "Some detail",
Status = 400,
Type = "Some type",
Instance = "Instance"
}
When using the fluent Api we can write.
var problemDetails = new ProblemDetails()
.WithTitle("Some title")
.WithDetail("Some detail")
.WithStatusCode(StatusCodes.Status400BadRequest)
.WithType(new Uri("about:blank"))
.WithSeverity(Severity.Error.ToString());
The method WithType asks for a Uri to be sure that the type is referring to a url.
From Results to ProblemDetails
As it is a common scenario to return a ProblemDetails from an action, this package provides extension methods to convert the results to ProblemDetails.
Different scenarios are covered:
- ToGenericMessage: Converts a result to a ProblemDetails with a generic message saying the information is logged.
- ToProblemDetails: Converts a result to a ProblemDetails or a generic one if the errors contain at least one exception.
The developers will generaly not used the ToGenericMessage method, but it is used by the ToProblemDetails method, the ToProblemDetails method is taking care to manage this to a generic message if any exception(s) are part of the error messages collection.
A default Function implementation exists to convert an exception to a ProblemDetails, but it is possible to provide a custom implementation. Just use the static method 'SetFromErrorFactory(Func<IEnumerable<IError>, ProblemDetails> fromErrors)' to set your custom implementation.
The Arc4u framework covers the following Error types:
- IExceptionalError ⇒ will result in a Generic message with an Http Status Code equal to 500.
- ProblemDetailsError ⇒ will be converted to a ProblemDetails with a default Http Status Code equal to 400 if another one is not given!
- ValidationError ⇒ will be converted to a ValidationProblemDetails with a Http Status Code equal to 422.
If you have your own error type, you can implement the IError interface and provide a custom implementation to convert it to a ProblemDetails.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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 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. |
-
net6.0
- Arc4u.Standard.Results (>= 8.2.0-preview25)
-
net8.0
- Arc4u.Standard.Results (>= 8.2.0-preview25)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Arc4u.AspNetCore.Results:
Package | Downloads |
---|---|
Arc4u.Standard.OAuth2.AspNetCore
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
8.3.0-preview02 | 91 | 11/14/2024 |
8.3.0-preview01 | 170 | 8/30/2024 |
8.2.1 | 174 | 11/10/2024 |
8.2.1-preview01 | 132 | 11/9/2024 |
8.2.0 | 768 | 8/16/2024 |
8.2.0-preview31 | 172 | 8/16/2024 |
8.2.0-preview30 | 177 | 8/1/2024 |
8.2.0-preview29 | 91 | 7/25/2024 |
8.2.0-preview28 | 118 | 7/25/2024 |
8.2.0-preview27 | 167 | 6/28/2024 |
8.2.0-preview26 | 172 | 6/27/2024 |
8.2.0-preview25 | 162 | 6/26/2024 |
8.2.0-preview24 | 175 | 6/9/2024 |
8.2.0-preview23 | 289 | 5/29/2024 |
8.2.0-preview22 | 183 | 5/26/2024 |
8.2.0-preview21 | 166 | 5/22/2024 |
8.2.0-preview20 | 189 | 5/19/2024 |
8.2.0-preview19 | 117 | 5/18/2024 |
8.2.0-preview18 | 109 | 5/12/2024 |
8.2.0-preview17 | 129 | 5/12/2024 |
8.2.0-preview16 | 101 | 5/12/2024 |
8.2.0-preview15 | 103 | 5/11/2024 |
8.2.0-preview14 | 109 | 5/10/2024 |
8.2.0-preview13 | 94 | 5/9/2024 |
8.2.0-preview12 | 133 | 5/8/2024 |
8.2.0-preview11 | 129 | 5/7/2024 |
8.2.0-preview10 | 143 | 5/5/2024 |
8.2.0-preview09 | 129 | 5/4/2024 |
8.2.0-preview08 | 110 | 4/25/2024 |
8.2.0-preview07 | 135 | 4/23/2024 |
8.2.0-preview06 | 129 | 4/23/2024 |
8.2.0-preview05 | 111 | 4/21/2024 |
8.2.0-preview04 | 125 | 4/20/2024 |
8.2.0-preview03 | 117 | 4/17/2024 |
8.2.0-preview02 | 150 | 4/12/2024 |
8.2.0-preview01 | 143 | 4/11/2024 |
1.0.0 | 157 | 5/18/2024 |