ResultT 1.0.2

dotnet add package ResultT --version 1.0.2
                    
NuGet\Install-Package ResultT -Version 1.0.2
                    
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="ResultT" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ResultT" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="ResultT" />
                    
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 ResultT --version 1.0.2
                    
#r "nuget: ResultT, 1.0.2"
                    
#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 ResultT@1.0.2
                    
#: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=ResultT&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=ResultT&version=1.0.2
                    
Install as a Cake Tool

Result<T>

NuGet Build Publish

dotnet add package ResultT

Simple generic Result pattern model with Error and implicit conversions.

The Error result is implicit converted to the expected result type Result<T>:

using ResultT;

Task<Result<Model>> GetById(int id)
{
    try
    {
        var model = repository.Get(id);

        return Results.Ok(model);
    }
    catch (Exception ex)
    {
        return Results.Error(ex.Message, ex)

        //others error constructors:
        return Results.Error(ex.Message)
        return Results.Error(ex)
    }
}
using ResultT;

Task<Result> Update(Model model)
{
    var rowsUpdated = repository.Update(model);

    if (rowsUpdated > 0)
    {
        return Results.Ok();
    }
    else
    {
        return Results.Error();
    }
}

Simplifyng the code with using static

using ResultT;
using static ResultT.Results;

Task<Result<Model>> GetById(int id)
{
    try
    {
        var model = repository.Get(id);

        return Ok(model);
    }
    catch (Exception ex)
    {
        return Error(ex.Message, ex)

        //others error constructors:
        return Error(ex.Message)
        return Error(ex)
    }
}
using ResultT;
using static ResultT.Results;

Task<Result> Update(Model model)
{
    var rowsUpdated = repository.Update(model);

    if (rowsUpdated > 0)
    {
        return Ok();
    }
    else
    {
        return Error("Fail to update");
    }
}

Implicit conversions can be made with the result value, error messages string and error exceptions too:

using ResultT;

Task<Result<Model>> GetById(int id)
{
    try
    {
        var model = repository.Get(id);

        return model;
    }
    catch (Exception ex)
    {
        logger.LogError(ex, ex.Message);
        return ex;        
    }
}
using ResultT;

Task<Result> Update(Model model)
{   
    var rowsUpdated = repository.Update(model);

    if (rowsUpdated > 0)
    {
        return Ok();
    }
    else
    {
        var errorMessage = "Fail to update";
        return errorMessage;
    }
}
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.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 605 1/18/2025
1.0.1 384 12/26/2024
1.0.0 155 12/25/2024