MethodResultWrapper 1.1.3

There is a newer version of this package available.
See the version list below for details.
Install-Package MethodResultWrapper -Version 1.1.3
dotnet add package MethodResultWrapper --version 1.1.3
<PackageReference Include="MethodResultWrapper" Version="1.1.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MethodResultWrapper --version 1.1.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MethodResultWrapper, 1.1.3"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install MethodResultWrapper as a Cake Addin
#addin nuget:?package=MethodResultWrapper&version=1.1.3

// Install MethodResultWrapper as a Cake Tool
#tool nuget:?package=MethodResultWrapper&version=1.1.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Method Result Wrapper

Provides a generic wrapper that returns whether or not a method succeeded or failed carrying the method result on success or a list of notifications in case of failure.

Interfaces

MethodResult interfaces

    public interface IMethodResult
    {
        /// <summary>
        /// At least one notification has a severity
        /// greater or equal to Error
        /// </summary>
        bool Failure { get; }

        /// <summary>
        /// No notification or all notifications severity
        /// are lower than Error
        /// </summary>
        bool Success { get; }

        SeverityEnum Severity { get; }

        /// <summary>
        /// Bulk string made of the concatenation
        /// of the notifications separated by new
        /// lines
        /// </summary>
        string ErrorMessage { get; }

        IEnumerable<IMethodResultNotification> Notifications { get; }

        /// <summary>
        /// Will throw new Exception(ErrorMessage)
        /// </summary>
        void Throw();
    }
    
    public interface IMethodResult<out T> : IMethodResult
    {
        T Data { get; }
    }

    public interface IMethodResultNotification
    {
        SeverityEnum Severity { get; }
        string Message { get; }
    }
    

ILoggerService interface

  • This nuget package also provides the ILoggerService interface and a ConsoleLogger concrete that supports the MethodResult object

  • Remark: feel free to get the MsSqlLoggerService nuget package that implements this interface enabling to persist logs into a table of your choice in a Ms Sql database


    public interface ILoggerService : IDisposable
    {
        /// <summary>
        /// Subsequent calls to the Log method will
        /// store the provided UserId and CompanyId
        /// into their corresponding columns
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="companyId"></param>
        void SetUser(string userId, string companyId = null);

        void Log(
            string message = "passed",
            SeverityEnum severity = SeverityEnum.Debug,
            [CallerMemberName] string memberName = "",
            [CallerFilePath] string filePath = "",
            [CallerLineNumber] int lineNumber = -1);

        void Log(
            IEnumerable<string> messages,
            SeverityEnum severity,
            [CallerMemberName] string memberName = "",
            [CallerFilePath] string filePath = "",
            [CallerLineNumber] int lineNumber = -1);

        void Log(
            IMethodResult result,
            [CallerMemberName] string memberName = "",
            [CallerFilePath] string filePath = "",
            [CallerLineNumber] int lineNumber = -1);

        void Log(
            Exception e,
            SeverityEnum severity = SeverityEnum.Fatal,
            [CallerMemberName] string memberName = "",
            [CallerFilePath] string filePath = "",
            [CallerLineNumber] int lineNumber = -1);
    }

This package has no dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on MethodResultWrapper:

Package Downloads
MsSqlLoggerService

Ms Sql implementation of MethodResultWrapper ILoggerService. Persists logs into a MsSql table.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.6 120 9/22/2021
3.0.5 102 4/28/2021
3.0.4 104 4/27/2021
3.0.3 299 6/10/2020
3.0.2 187 6/10/2020
3.0.1 198 6/10/2020
3.0.0 213 6/10/2020
2.0.1 291 3/20/2020
2.0.0 248 3/19/2020
1.1.3 202 3/20/2020
1.1.2 298 3/19/2020
1.1.0 361 3/7/2020
1.0.0 218 2/28/2020

Documentation updated