Skip to content

Commit

Permalink
add v1.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
pedrovasconcellos committed Mar 23, 2023
1 parent f071da4 commit c914d2b
Show file tree
Hide file tree
Showing 10 changed files with 70 additions and 47 deletions.
26 changes: 25 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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<Result<Guid>> ExecuteAsync(EmailCommand command)
{
if (command == null)
return Result<Guid>.Fail("COMMAND_IS_NULL","Request is null", ResultStatus.BadDomain);
try
{
var entity = new EmailEntity(command);
if (entity.IsFailure)
return Result<Guid>.Fail(entity.ErrorCode, entity.ErrorMessage, ResultStatus.UnprocessableEntity);

var resultID = await _triggerService.Executesync(entity);

return Result<Guid>.Success(resultID);
}
catch (Exception ex)
{
_logger.LogError($"Error: {ex.Message}", ex);
return Result<Guid>.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
30 changes: 15 additions & 15 deletions src/Vasconcellos.Common.Results.Tests/Domain/ResultTTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public async Task Should_FailDefault_ReturnErrorBadDomain()
var result = Result<object>.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);

Expand All @@ -31,20 +31,20 @@ public async Task Should_FailNotFound_ReturnErrorNotFound()
var result = Result<object>.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);

await Task.CompletedTask;
}

[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<object>.Fail(_codeDefault, _messageDefault, status);

Expand All @@ -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<object>.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);

Expand Down
30 changes: 15 additions & 15 deletions src/Vasconcellos.Common.Results.Tests/Domain/ResultTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand All @@ -31,20 +31,20 @@ 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);

await Task.CompletedTask;
}

[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);

Expand All @@ -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);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<Nullable>enable</Nullable>

<IsPackable>false</IsPackable>
<ReleaseVersion>1.0.0</ReleaseVersion>
<ReleaseVersion>1.1.0</ReleaseVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions src/Vasconcellos.Common.Results/Domain/Error.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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; }
}
}

8 changes: 4 additions & 4 deletions src/Vasconcellos.Common.Results/Domain/Result.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ private Result(Error error)
Errors = new List<Error> { 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> { error };
Expand All @@ -43,15 +43,15 @@ public static Result Fail(IList<Error> 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;
}

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;
}

Expand All @@ -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;
Expand Down
8 changes: 4 additions & 4 deletions src/Vasconcellos.Common.Results/Domain/ResultT.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ private Result(Error error)
Errors = new List<Error> { 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> { error };
Expand All @@ -45,15 +45,15 @@ public static Result<T> Fail(IList<Error> errors)
return result;
}

public static Result<T> Fail(string code, string message, ResultStatus type = ResultStatus.BadDomain)
public static Result<T> Fail(string code, string message, ErrorType type = ErrorType.BadDomain)
{
var result = new Result<T>(code, message, type);
return result;
}

public static Result<T> FailNotFound(string code, string message)
{
var result = new Result<T>(code, message, ResultStatus.NotFound);
var result = new Result<T>(code, message, ErrorType.NotFound);
return result;
}

Expand All @@ -68,7 +68,7 @@ public Result<T> AddError(Error error)
return this;
}

public Result<T> AddError(string code, string message, ResultStatus type = ResultStatus.BadDomain)
public Result<T> AddError(string code, string message, ErrorType type = ErrorType.BadDomain)
{
this.AddError(new Error(code, message, type));
return this;
Expand Down
Original file line number Diff line number Diff line change
@@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
<Authors>Pedro Henrique Vasconcellos</Authors>
<Owners>Pedro Henrique Vasconcellos</Owners>
<Title>Vasconcellos Result</Title>
<Version>1.0.0</Version>
<Version>1.1.0</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<ReleaseVersion>1.0.0</ReleaseVersion>
<ReleaseVersion>1.1.0</ReleaseVersion>
</PropertyGroup>

<PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion src/Vasconcellos.Common.sln
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit c914d2b

Please sign in to comment.