pvWay.MethodResultWrapper.Core
1.0.1
See the version list below for details.
dotnet add package pvWay.MethodResultWrapper.Core --version 1.0.1
NuGet\Install-Package pvWay.MethodResultWrapper.Core -Version 1.0.1
<PackageReference Include="pvWay.MethodResultWrapper.Core" Version="1.0.1" />
paket add pvWay.MethodResultWrapper.Core --version 1.0.1
#r "nuget: pvWay.MethodResultWrapper.Core, 1.0.1"
// Install pvWay.MethodResultWrapper.Core as a Cake Addin #addin nuget:?package=pvWay.MethodResultWrapper.Core&version=1.0.1 // Install pvWay.MethodResultWrapper.Core as a Cake Tool #tool nuget:?package=pvWay.MethodResultWrapper.Core&version=1.0.1
Method Result Wrapper Core
Version 1.0.1
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
/// <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);
/// <summary>
/// Topic is an optional extra column in the log
/// that enables grouping logs. Subsequent calls to
/// the Log method will store the provided
/// topic into the corresponding column
/// </summary>
/// <param name="topic"></param>
void SetTopic(string topic);
// TOPIC LESS METHODS
void Log(
string message,
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);
// TOPIC METHODS
void Log(
string message,
string topic,
SeverityEnum severity = SeverityEnum.Debug,
[CallerMemberName] string memberName = "",
[CallerFilePath] string filePath = "",
[CallerLineNumber] int lineNumber = -1);
void Log(
IEnumerable<string> messages,
string topic,
SeverityEnum severity,
[CallerMemberName] string memberName = "",
[CallerFilePath] string filePath = "",
[CallerLineNumber] int lineNumber = -1);
void Log(
IMethodResult result,
string topic,
[CallerMemberName] string memberName = "",
[CallerFilePath] string filePath = "",
[CallerLineNumber] int lineNumber = -1);
void Log(
Exception e,
string topic,
SeverityEnum severity = SeverityEnum.Fatal,
[CallerMemberName] string memberName = "",
[CallerFilePath] string filePath = "",
[CallerLineNumber] int lineNumber = -1);
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. |
.NET Core | netcoreapp3.1 is compatible. |
-
.NETCoreApp 3.1
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on pvWay.MethodResultWrapper.Core:
Package | Downloads |
---|---|
pvWay.MsSqlLoggerService.Core
Ms Sql implementation of MethodResultWrapper ILoggerService. Persists logs into a MsSql table. |
GitHub repositories
This package is not used by any popular GitHub repositories.
DsoHttpResult.HttpStatusCode made public