Arc4u.AspNetCore.Results 8.2.0-preview21

The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org. Prefix Reserved
This is a prerelease version of Arc4u.AspNetCore.Results.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Arc4u.AspNetCore.Results --version 8.2.0-preview21
NuGet\Install-Package Arc4u.AspNetCore.Results -Version 8.2.0-preview21
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="Arc4u.AspNetCore.Results" Version="8.2.0-preview21" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Arc4u.AspNetCore.Results --version 8.2.0-preview21
#r "nuget: Arc4u.AspNetCore.Results, 8.2.0-preview21"
#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.
// Install Arc4u.AspNetCore.Results as a Cake Addin
#addin nuget:?package=Arc4u.AspNetCore.Results&version=8.2.0-preview21&prerelease

// Install Arc4u.AspNetCore.Results as a Cake Tool
#tool nuget:?package=Arc4u.AspNetCore.Results&version=8.2.0-preview21&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.Status500InternalServerError)
                    .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.
  • ProblemDetailsError ⇒ will be converted to a ProblemDetails.
  • ValidationError ⇒ will be converted to a ValidationProblemDetails.

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Arc4u.AspNetCore.Results:

Package Downloads
Arc4u.Standard.OAuth2.AspNetCore The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
8.2.0-preview27 23 6/28/2024
8.2.0-preview26 35 6/27/2024
8.2.0-preview25 59 6/26/2024
8.2.0-preview24 116 6/9/2024
8.2.0-preview23 144 5/29/2024
8.2.0-preview22 126 5/26/2024
8.2.0-preview21 111 5/22/2024
8.2.0-preview20 104 5/19/2024
8.2.0-preview19 75 5/18/2024
8.2.0-preview18 71 5/12/2024
8.2.0-preview17 55 5/12/2024
8.2.0-preview16 54 5/12/2024
8.2.0-preview15 57 5/11/2024
8.2.0-preview14 62 5/10/2024
8.2.0-preview13 60 5/9/2024
8.2.0-preview12 81 5/8/2024
8.2.0-preview11 88 5/7/2024
8.2.0-preview10 83 5/5/2024
8.2.0-preview09 84 5/4/2024
8.2.0-preview08 81 4/25/2024
8.2.0-preview07 97 4/23/2024
8.2.0-preview06 81 4/23/2024
8.2.0-preview05 72 4/21/2024
8.2.0-preview04 82 4/20/2024
8.2.0-preview03 75 4/17/2024
8.2.0-preview02 78 4/12/2024
8.2.0-preview01 83 4/11/2024
1.0.0 98 5/18/2024