Skip to content

Commit e6c06d2

Browse files
committed
Added error model instead of exception
1 parent 3a64ce9 commit e6c06d2

4 files changed

Lines changed: 69 additions & 26 deletions

File tree

Directory.Build.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1414
<PackageReadmeFile>README.md</PackageReadmeFile>
1515
<Product>Managed Code - Communication</Product>
16-
<Version>0.0.6</Version>
17-
<PackageVersion>0.0.6</PackageVersion>
16+
<Version>0.0.7</Version>
17+
<PackageVersion>0.0.7</PackageVersion>
1818
</PropertyGroup>
1919
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
2020
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>

ManagedCode.Communication/Error.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using System;
2+
3+
namespace ManagedCode.Communication;
4+
5+
public class Error
6+
{
7+
public Error(string message)
8+
{
9+
Message = message;
10+
}
11+
12+
public Error(Exception? exception)
13+
{
14+
Exception = exception;
15+
Message = exception.Message;
16+
}
17+
18+
public Exception? Exception { get; set; }
19+
public string Message { get; set; }
20+
}

ManagedCode.Communication/Result.cs

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,48 +6,63 @@ public class Result
66
{
77
public bool IsSuccess { get; }
88
public bool IsError => !IsSuccess;
9-
public Exception? Error { get; }
9+
public Error? Error { get; }
1010

11-
public Result(bool isSuccess, Exception? error)
11+
protected Result(Exception exception)
1212
{
13-
IsSuccess = isSuccess;
14-
Error = error;
13+
IsSuccess = false;
14+
Error = new Error(exception);
1515
}
1616

17-
public Result(bool isSuccess)
17+
protected Result(string errorMessage)
1818
{
19-
IsSuccess = isSuccess;
20-
Error = null;
19+
IsSuccess = false;
20+
Error = new Error(errorMessage);
2121
}
2222

23-
public Result(Exception? error)
23+
protected Result(bool isSuccess)
2424
{
25-
IsSuccess = false;
26-
Error = error;
25+
IsSuccess = isSuccess;
26+
Error = null;
2727
}
2828

2929
public static Result Succeed()
3030
{
3131
return new Result(true);
3232
}
3333

34-
public static Result<T> Succeed<T>(T result)
34+
public static Result Fail(Exception error)
3535
{
36-
return new Result<T>(true, result);
36+
return new Result(error);
3737
}
3838

39-
public static Result Fail(Exception? error)
39+
public static Result Fail(string errorMessage)
4040
{
41-
return new Result(error);
41+
return new Result(errorMessage);
4242
}
4343

44-
public static Result<T> Fail<T>(Exception? error)
44+
public static Result Fail()
4545
{
46-
return new Result<T>(error);
46+
return new Result(false);
4747
}
4848

49-
public static Result Fail()
49+
public static Result<T> Succeed<T>(T content)
50+
{
51+
return new Result<T>(true, content);
52+
}
53+
54+
public static Result<T> Fail<T>()
55+
{
56+
return new Result<T>(false);
57+
}
58+
59+
public static Result<T> Fail<T>(Exception exception)
60+
{
61+
return new Result<T>(exception);
62+
}
63+
64+
public static Result<T> Fail<T>(string errorMessage)
5065
{
51-
return new Result(null);
66+
return new Result<T>(errorMessage);
5267
}
5368
}

ManagedCode.Communication/ResultT.cs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,40 @@ public class Result<T> : Result
66
{
77
public T? Value { get; }
88

9-
public Result(Exception? error) : base(error)
9+
public Result(Exception exception) : base(exception)
1010
{
1111
}
1212

13-
public Result(bool isSuccess, T value, Exception? error) : base(isSuccess, error)
13+
public Result(string errorMessage) : base(errorMessage)
1414
{
15-
Value = value;
1615
}
1716

1817
public Result(bool isSuccess, T value) : base(isSuccess)
1918
{
2019
Value = value;
2120
}
2221

22+
public Result(bool isSuccess) : base(isSuccess)
23+
{
24+
}
25+
2326
public static Result<T> Succeed(T content)
2427
{
2528
return new Result<T>(true, content);
2629
}
2730

2831
public new static Result<T> Fail()
2932
{
30-
return new Result<T>(null);
33+
return new Result<T>(false);
34+
}
35+
36+
public new static Result<T> Fail(Exception exception)
37+
{
38+
return new Result<T>(exception);
3139
}
3240

33-
public new static Result<T> Fail(Exception? error)
41+
public new static Result<T> Fail(string errorMessage)
3442
{
35-
return new Result<T>(error);
43+
return new Result<T>(errorMessage);
3644
}
3745
}

0 commit comments

Comments
 (0)