From c914d2b2fac63246c5835a7e3db58a0931a8e9a3 Mon Sep 17 00:00:00 2001 From: Pedro Vasconcellos Date: Wed, 22 Mar 2023 23:41:32 -0300 Subject: [PATCH] add v1.1.0 --- README.md | 26 +++++++++++++++- .../Domain/ResultTTest.cs | 30 +++++++++---------- .../Domain/ResultTest.cs | 30 +++++++++---------- .../Vasconcellos.Common.Results.Tests.csproj | 2 +- .../Domain/Error.cs | 4 +-- .../Domain/Result.cs | 8 ++--- .../Domain/ResultT.cs | 8 ++--- .../Enums/{ResultStatus.cs => ErrorType.cs} | 3 +- .../Vasconcellos.Common.Results.csproj | 4 +-- src/Vasconcellos.Common.sln | 2 +- 10 files changed, 70 insertions(+), 47 deletions(-) rename src/Vasconcellos.Common.Results/Enums/{ResultStatus.cs => ErrorType.cs} (83%) diff --git a/README.md b/README.md index 76645e9..5cfd5a5 100644 --- a/README.md +++ b/README.md @@ -7,10 +7,34 @@ ##### Author: Pedro Henrique Vasconcellos ##### Sponsor: https://vasconcellos.solutions -## Library for returning the result of functions. +## Vasconcellos.Common.Result is a library for returning the result of functions. - Nuget: https://www.nuget.org/packages/Vasconcellos.Common.Results - Nuget .NET CLI: dotnet add package Vasconcellos.Common.Results +Example of using the Vasconcellos.Common.Result. +```csharp +public async Task> ExecuteAsync(EmailCommand command) +{ + if (command == null) + return Result.Fail("COMMAND_IS_NULL","Request is null", ResultStatus.BadDomain); + try + { + var entity = new EmailEntity(command); + if (entity.IsFailure) + return Result.Fail(entity.ErrorCode, entity.ErrorMessage, ResultStatus.UnprocessableEntity); + + var resultID = await _triggerService.Executesync(entity); + + return Result.Success(resultID); + } + catch (Exception ex) + { + _logger.LogError($"Error: {ex.Message}", ex); + return Result.Fail("ERROR_EXCEPTION", ex.Message, ResultStatus.Unexpected); + } +} +``` + ## Sponsor [![Vasconcellos Solutions](https://vasconcellos.solutions/assets/open-source/images/company/vasconcellos-solutions-small-icon.jpg)](https://www.vasconcellos.solutions) ### Vasconcellos IT Solutions \ No newline at end of file diff --git a/src/Vasconcellos.Common.Results.Tests/Domain/ResultTTest.cs b/src/Vasconcellos.Common.Results.Tests/Domain/ResultTTest.cs index c65aabd..636823f 100644 --- a/src/Vasconcellos.Common.Results.Tests/Domain/ResultTTest.cs +++ b/src/Vasconcellos.Common.Results.Tests/Domain/ResultTTest.cs @@ -18,7 +18,7 @@ public async Task Should_FailDefault_ReturnErrorBadDomain() var result = Result.Fail(_codeDefault, _messageDefault); var error = result.GetError(); - Assert.Equal(ResultStatus.BadDomain, error.Type); + Assert.Equal(ErrorType.BadDomain, error.Type); Assert.Equal(_codeDefault, error.Code); Assert.Equal(_messageDefault, error.Message); @@ -31,7 +31,7 @@ public async Task Should_FailNotFound_ReturnErrorNotFound() var result = Result.FailNotFound(_codeDefault, _messageDefault); var error = result.GetError(); - Assert.Equal(ResultStatus.NotFound, error.Type); + Assert.Equal(ErrorType.NotFound, error.Type); Assert.Equal(_codeDefault, error.Code); Assert.Equal(_messageDefault, error.Message); @@ -39,12 +39,12 @@ public async Task Should_FailNotFound_ReturnErrorNotFound() } [Theory] - [InlineData(ResultStatus.Forbidden)] - [InlineData(ResultStatus.Unauthorized)] - [InlineData(ResultStatus.Unexpected)] - [InlineData(ResultStatus.UnprocessableEntity)] - [InlineData(ResultStatus.BadDomain)] - public async Task Should_FailDefault_ReturnErrorTypeX(ResultStatus status) + [InlineData(ErrorType.Forbidden)] + [InlineData(ErrorType.Unauthorized)] + [InlineData(ErrorType.Unexpected)] + [InlineData(ErrorType.UnprocessableEntity)] + [InlineData(ErrorType.BadDomain)] + public async Task Should_FailDefault_ReturnErrorTypeX(ErrorType status) { var result = Result.Fail(_codeDefault, _messageDefault, status); @@ -70,17 +70,17 @@ public async Task Should_Sucess_ReturnValue() } [Theory] - [InlineData(ResultStatus.Forbidden)] - [InlineData(ResultStatus.Unauthorized)] - [InlineData(ResultStatus.UnprocessableEntity)] - [InlineData(ResultStatus.BadDomain)] - public async Task Should_FailDefault_ReturnErrorTypeUnexpected(ResultStatus status) + [InlineData(ErrorType.Forbidden)] + [InlineData(ErrorType.Unauthorized)] + [InlineData(ErrorType.UnprocessableEntity)] + [InlineData(ErrorType.BadDomain)] + public async Task Should_FailDefault_ReturnErrorTypeUnexpected(ErrorType status) { var result = Result.Fail(_codeDefault, _messageDefault, status); - result.AddError(_codeDefault, _messageDefault, ResultStatus.Unexpected); + result.AddError(_codeDefault, _messageDefault, ErrorType.Unexpected); var error = result.GetError(); - Assert.Equal(ResultStatus.Unexpected, error.Type); + Assert.Equal(ErrorType.Unexpected, error.Type); Assert.Equal(_codeDefault, error.Code); Assert.Equal(_messageDefault, error.Message); diff --git a/src/Vasconcellos.Common.Results.Tests/Domain/ResultTest.cs b/src/Vasconcellos.Common.Results.Tests/Domain/ResultTest.cs index d90d900..303bdec 100644 --- a/src/Vasconcellos.Common.Results.Tests/Domain/ResultTest.cs +++ b/src/Vasconcellos.Common.Results.Tests/Domain/ResultTest.cs @@ -18,7 +18,7 @@ public async Task Should_FailDefault_ReturnErrorBadDomain() var result = Result.Fail(_codeDefault, _messageDefault); var error = result.GetError(); - Assert.Equal(ResultStatus.BadDomain, error.Type); + Assert.Equal(ErrorType.BadDomain, error.Type); Assert.Equal(_codeDefault, error.Code); Assert.Equal(_messageDefault, error.Message); @@ -31,7 +31,7 @@ public async Task Should_FailNotFound_ReturnErrorNotFound() var result = Result.FailNotFound(_codeDefault, _messageDefault); var error = result.GetError(); - Assert.Equal(ResultStatus.NotFound, error.Type); + Assert.Equal(ErrorType.NotFound, error.Type); Assert.Equal(_codeDefault, error.Code); Assert.Equal(_messageDefault, error.Message); @@ -39,12 +39,12 @@ public async Task Should_FailNotFound_ReturnErrorNotFound() } [Theory] - [InlineData(ResultStatus.Forbidden)] - [InlineData(ResultStatus.Unauthorized)] - [InlineData(ResultStatus.Unexpected)] - [InlineData(ResultStatus.UnprocessableEntity)] - [InlineData(ResultStatus.BadDomain)] - public async Task Should_FailDefault_ReturnErrorTypeX(ResultStatus status) + [InlineData(ErrorType.Forbidden)] + [InlineData(ErrorType.Unauthorized)] + [InlineData(ErrorType.Unexpected)] + [InlineData(ErrorType.UnprocessableEntity)] + [InlineData(ErrorType.BadDomain)] + public async Task Should_FailDefault_ReturnErrorTypeX(ErrorType status) { var result = Result.Fail(_codeDefault, _messageDefault, status); @@ -69,17 +69,17 @@ public async Task Should_Sucess_ReturnValue() } [Theory] - [InlineData(ResultStatus.Forbidden)] - [InlineData(ResultStatus.Unauthorized)] - [InlineData(ResultStatus.UnprocessableEntity)] - [InlineData(ResultStatus.BadDomain)] - public async Task Should_FailDefault_ReturnErrorTypeUnexpected(ResultStatus status) + [InlineData(ErrorType.Forbidden)] + [InlineData(ErrorType.Unauthorized)] + [InlineData(ErrorType.UnprocessableEntity)] + [InlineData(ErrorType.BadDomain)] + public async Task Should_FailDefault_ReturnErrorTypeUnexpected(ErrorType status) { var result = Result.Fail(_codeDefault, _messageDefault, status); - result.AddError(_codeDefault, _messageDefault, ResultStatus.Unexpected); + result.AddError(_codeDefault, _messageDefault, ErrorType.Unexpected); var error = result.GetError(); - Assert.Equal(ResultStatus.Unexpected, error.Type); + Assert.Equal(ErrorType.Unexpected, error.Type); Assert.Equal(_codeDefault, error.Code); Assert.Equal(_messageDefault, error.Message); diff --git a/src/Vasconcellos.Common.Results.Tests/Vasconcellos.Common.Results.Tests.csproj b/src/Vasconcellos.Common.Results.Tests/Vasconcellos.Common.Results.Tests.csproj index 4c2042f..a5562b3 100644 --- a/src/Vasconcellos.Common.Results.Tests/Vasconcellos.Common.Results.Tests.csproj +++ b/src/Vasconcellos.Common.Results.Tests/Vasconcellos.Common.Results.Tests.csproj @@ -6,7 +6,7 @@ enable false - 1.0.0 + 1.1.0 diff --git a/src/Vasconcellos.Common.Results/Domain/Error.cs b/src/Vasconcellos.Common.Results/Domain/Error.cs index 30efecb..6478945 100644 --- a/src/Vasconcellos.Common.Results/Domain/Error.cs +++ b/src/Vasconcellos.Common.Results/Domain/Error.cs @@ -4,7 +4,7 @@ namespace Vasconcellos.Common.Results.Domain { public class Error { - public Error(string code, string message, ResultStatus type = ResultStatus.BadDomain) + public Error(string code, string message, ErrorType type = ErrorType.BadDomain) { Code = code; Message = message; @@ -13,7 +13,7 @@ public Error(string code, string message, ResultStatus type = ResultStatus.BadDo public string Code { get; } public string Message { get; } - public ResultStatus Type { get; } + public ErrorType Type { get; } } } diff --git a/src/Vasconcellos.Common.Results/Domain/Result.cs b/src/Vasconcellos.Common.Results/Domain/Result.cs index 761d67e..cba0aa9 100644 --- a/src/Vasconcellos.Common.Results/Domain/Result.cs +++ b/src/Vasconcellos.Common.Results/Domain/Result.cs @@ -25,7 +25,7 @@ private Result(Error error) Errors = new List { error }; } - private Result(string code, string message, ResultStatus type = ResultStatus.BadDomain) + private Result(string code, string message, ErrorType type = ErrorType.BadDomain) { var error = new Error(code, message, type); Errors = new List { error }; @@ -43,7 +43,7 @@ public static Result Fail(IList errors) return result; } - public static Result Fail(string code, string message, ResultStatus type = ResultStatus.BadDomain) + public static Result Fail(string code, string message, ErrorType type = ErrorType.BadDomain) { var result = new Result(code, message, type); return result; @@ -51,7 +51,7 @@ public static Result Fail(string code, string message, ResultStatus type = Resul public static Result FailNotFound(string code, string message) { - var result = new Result(code, message, ResultStatus.NotFound); + var result = new Result(code, message, ErrorType.NotFound); return result; } @@ -66,7 +66,7 @@ public Result AddError(Error error) return this; } - public Result AddError(string code, string message, ResultStatus type = ResultStatus.BadDomain) + public Result AddError(string code, string message, ErrorType type = ErrorType.BadDomain) { this.AddError(new Error(code, message, type)); return this; diff --git a/src/Vasconcellos.Common.Results/Domain/ResultT.cs b/src/Vasconcellos.Common.Results/Domain/ResultT.cs index b31a1b5..29d92da 100644 --- a/src/Vasconcellos.Common.Results/Domain/ResultT.cs +++ b/src/Vasconcellos.Common.Results/Domain/ResultT.cs @@ -27,7 +27,7 @@ private Result(Error error) Errors = new List { error }; } - private Result(string code, string message, ResultStatus type = ResultStatus.BadDomain) + private Result(string code, string message, ErrorType type = ErrorType.BadDomain) { var error = new Error(code, message, type); Errors = new List { error }; @@ -45,7 +45,7 @@ public static Result Fail(IList errors) return result; } - public static Result Fail(string code, string message, ResultStatus type = ResultStatus.BadDomain) + public static Result Fail(string code, string message, ErrorType type = ErrorType.BadDomain) { var result = new Result(code, message, type); return result; @@ -53,7 +53,7 @@ public static Result Fail(string code, string message, ResultStatus type = Re public static Result FailNotFound(string code, string message) { - var result = new Result(code, message, ResultStatus.NotFound); + var result = new Result(code, message, ErrorType.NotFound); return result; } @@ -68,7 +68,7 @@ public Result AddError(Error error) return this; } - public Result AddError(string code, string message, ResultStatus type = ResultStatus.BadDomain) + public Result AddError(string code, string message, ErrorType type = ErrorType.BadDomain) { this.AddError(new Error(code, message, type)); return this; diff --git a/src/Vasconcellos.Common.Results/Enums/ResultStatus.cs b/src/Vasconcellos.Common.Results/Enums/ErrorType.cs similarity index 83% rename from src/Vasconcellos.Common.Results/Enums/ResultStatus.cs rename to src/Vasconcellos.Common.Results/Enums/ErrorType.cs index ff68232..00a924f 100644 --- a/src/Vasconcellos.Common.Results/Enums/ResultStatus.cs +++ b/src/Vasconcellos.Common.Results/Enums/ErrorType.cs @@ -1,9 +1,8 @@ namespace Vasconcellos.Common.Results.Enums { - public enum ResultStatus : int + public enum ErrorType : int { InvalidStatus = 0, - Ok = 200, BadDomain = 400, Unauthorized = 401, Forbidden = 403, diff --git a/src/Vasconcellos.Common.Results/Vasconcellos.Common.Results.csproj b/src/Vasconcellos.Common.Results/Vasconcellos.Common.Results.csproj index 9a6d91d..5b074ed 100644 --- a/src/Vasconcellos.Common.Results/Vasconcellos.Common.Results.csproj +++ b/src/Vasconcellos.Common.Results/Vasconcellos.Common.Results.csproj @@ -13,10 +13,10 @@ Pedro Henrique Vasconcellos Pedro Henrique Vasconcellos Vasconcellos Result - 1.0.0 + 1.1.0 true true - 1.0.0 + 1.1.0 diff --git a/src/Vasconcellos.Common.sln b/src/Vasconcellos.Common.sln index 1b9602c..fb5c7e1 100644 --- a/src/Vasconcellos.Common.sln +++ b/src/Vasconcellos.Common.sln @@ -29,6 +29,6 @@ Global SolutionGuid = {E207F68A-4A16-4070-AD3E-EEA90A043EE1} EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution - version = 1.0.0 + version = 1.1.0 EndGlobalSection EndGlobal