Skip to content

Commit 56ad744

Browse files
committed
v1.0.0.
1 parent c53a5a9 commit 56ad744

11 files changed

Lines changed: 135 additions & 66 deletions

Directory.Build.props

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
<Project>
22
<!--NuGet-->
33
<PropertyGroup>
4-
<EmbedUntrackedSources>true</EmbedUntrackedSources>
5-
<PublishRepositoryUrl>true</PublishRepositoryUrl>
64
<Authors>ManagedCode</Authors>
75
<Copyright>Copyright © 2021-$([System.DateTime]::Now.ToString(`yyyy`)) ManagedCode SAS</Copyright>
8-
<RepositoryUrl>https://github.com/managed-code-hub/Communication</RepositoryUrl>
9-
<PackageProjectUrl>https://github.com/managed-code-hub/Communication</PackageProjectUrl>
6+
<RepositoryUrl>https://github.com/managedcode/Communication</RepositoryUrl>
7+
<PackageProjectUrl>https://github.com/managedcode/Communication</PackageProjectUrl>
8+
<EmbedUntrackedSources>true</EmbedUntrackedSources>
9+
<PublishRepositoryUrl>true</PublishRepositoryUrl>
10+
<IncludeSymbols>true</IncludeSymbols>
11+
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
1012
<RepositoryType>Github</RepositoryType>
1113
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
1214
<PackageIcon>logo.png</PackageIcon>
1315
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1416
<PackageReadmeFile>README.md</PackageReadmeFile>
1517
<Product>Managed Code - Communication</Product>
16-
<Version>0.1.2</Version>
17-
<PackageVersion>0.1.2</PackageVersion>
18+
<Version>1.0.0</Version>
19+
<PackageVersion>1.0.0</PackageVersion>
1820
</PropertyGroup>
1921
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
2022
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
@@ -23,4 +25,7 @@
2325
<None Include="$(SolutionDir)\logo.png" Pack="true" Visible="false" PackagePath="\"/>
2426
<None Include="$(SolutionDir)\README.md" Pack="true" Visible="false" PackagePath="\"/>
2527
</ItemGroup>
28+
<ItemGroup>
29+
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All"/>
30+
</ItemGroup>
2631
</Project>

ManagedCode.Communication.Tests/ManagedCode.Communication.Tests.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
</None>
1818
</ItemGroup>
1919
<ItemGroup>
20-
<PackageReference Include="FluentAssertions" Version="6.5.1" />
21-
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
22-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
23-
<PackageReference Include="xunit" Version="2.4.1" />
20+
<PackageReference Include="FluentAssertions" Version="6.5.1"/>
21+
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0"/>
22+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0"/>
23+
<PackageReference Include="xunit" Version="2.4.1"/>
2424
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
2525
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2626
<PrivateAssets>all</PrivateAssets>
@@ -36,7 +36,7 @@
3636
</ItemGroup>
3737

3838
<ItemGroup>
39-
<ProjectReference Include="..\ManagedCode.Communication\ManagedCode.Communication.csproj" />
39+
<ProjectReference Include="..\ManagedCode.Communication\ManagedCode.Communication.csproj"/>
4040
</ItemGroup>
4141

4242
</Project>
Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using System.Collections.Generic;
32
using System.Threading.Tasks;
43
using FluentAssertions;
54
using Microsoft.Extensions.Logging.Abstractions;
@@ -22,24 +21,4 @@ public static Task<TestResult> ThrowException()
2221
{
2322
throw new Exception("Error");
2423
}
25-
}
26-
27-
public class TestResult : BaseResult<TestEnumCode>
28-
{
29-
public TestResult(bool isSuccess) : base(isSuccess)
30-
{
31-
}
32-
33-
public TestResult(Error<TestEnumCode> error) : base(error)
34-
{
35-
}
36-
37-
public TestResult(List<Error<TestEnumCode>> errors) : base(errors)
38-
{
39-
}
40-
}
41-
42-
public enum TestEnumCode
43-
{
44-
Test,
4524
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace ManagedCode.Communication.Tests;
2+
3+
public enum TestEnumCode
4+
{
5+
Test
6+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System.Collections.Generic;
2+
3+
namespace ManagedCode.Communication.Tests;
4+
5+
public class TestResult : BaseResult<TestEnumCode>
6+
{
7+
public TestResult(bool isSuccess) : base(isSuccess)
8+
{
9+
}
10+
11+
public TestResult(Error<TestEnumCode> error) : base(error)
12+
{
13+
}
14+
15+
public TestResult(List<Error<TestEnumCode>> errors) : base(errors)
16+
{
17+
}
18+
}

ManagedCode.Communication/BaseResult.cs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,6 @@ namespace ManagedCode.Communication;
66

77
public abstract class BaseResult<TErrorCode> where TErrorCode : Enum
88
{
9-
public bool IsSuccess { get; }
10-
public bool IsFail => !IsSuccess;
11-
public Error<TErrorCode>? Error => Errors?.FirstOrDefault();
12-
public List<Error<TErrorCode>>? Errors { get; }
13-
14-
159
protected BaseResult(bool isSuccess)
1610
{
1711
IsSuccess = isSuccess;
@@ -20,21 +14,23 @@ protected BaseResult(bool isSuccess)
2014
protected BaseResult(Error<TErrorCode> error)
2115
{
2216
IsSuccess = false;
23-
Errors = new List<Error<TErrorCode>> {error};
17+
Errors = new List<Error<TErrorCode>> { error };
2418
}
2519

2620
protected BaseResult(List<Error<TErrorCode>> errors)
2721
{
2822
IsSuccess = false;
2923
Errors = errors;
3024
}
25+
26+
public bool IsSuccess { get; }
27+
public bool IsFail => !IsSuccess;
28+
public Error<TErrorCode>? Error => Errors?.FirstOrDefault();
29+
public List<Error<TErrorCode>>? Errors { get; }
3130
}
3231

3332
public abstract class BaseResult<T, TErrorCode> : BaseResult<TErrorCode> where TErrorCode : Enum
3433
{
35-
public T? Value { get; }
36-
public T? ValueOrDefault(T? defaultValue = default) => Value ?? defaultValue;
37-
3834
protected BaseResult(T value) : base(true)
3935
{
4036
Value = value;
@@ -51,4 +47,11 @@ protected BaseResult(Error<TErrorCode> error) : base(error)
5147
protected BaseResult(List<Error<TErrorCode>> errors) : base(errors)
5248
{
5349
}
50+
51+
public T? Value { get; }
52+
53+
public T? ValueOrDefault(T? defaultValue = default)
54+
{
55+
return Value ?? defaultValue;
56+
}
5457
}

ManagedCode.Communication/Error.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ public Error(Exception exception, string message, TErrorCode? errorCode = defaul
2424
Message = message;
2525
}
2626

27-
2827
public string Message { get; set; }
2928
public Exception? Exception { get; set; }
3029
public TErrorCode? ErrorCode { get; set; }

ManagedCode.Communication/ErrorCode.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ public enum ErrorCode
1212
AccessDenied,
1313
NotImplemented,
1414
NotInitialized,
15-
AlreadyExists,
15+
AlreadyExists
1616
}

ManagedCode.Communication/ManagedCode.Communication.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
<TargetFramework>netstandard2.0</TargetFramework>
55
<Nullable>enable</Nullable>
66
<LangVersion>10</LangVersion>
7+
<IsPackable>true</IsPackable>
78
</PropertyGroup>
8-
9+
910
<!--NuGet-->
1011
<PropertyGroup>
1112
<Title>ManagedCode.Communication</Title>
@@ -15,8 +16,7 @@
1516
</PropertyGroup>
1617

1718
<ItemGroup>
18-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.1" />
19-
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
19+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.1"/>
2020
</ItemGroup>
2121

2222
</Project>

ManagedCode.Communication/Result.cs

Lines changed: 76 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,45 @@ internal Result(List<Error<ErrorCode>> errors) : base(errors)
1717
{
1818
}
1919

20+
public static implicit operator Result(Error<ErrorCode> error)
21+
{
22+
return new(error);
23+
}
2024

21-
public static implicit operator Result(Error<ErrorCode> error) => new(error);
22-
public static implicit operator Result(List<Error<ErrorCode>> errors) => new(errors);
23-
public static implicit operator Result(Exception exception) => new(Error<ErrorCode>.FromException(exception));
25+
public static implicit operator Result(List<Error<ErrorCode>> errors)
26+
{
27+
return new(errors);
28+
}
2429

30+
public static implicit operator Result(Exception exception)
31+
{
32+
return new(Error<ErrorCode>.FromException(exception));
33+
}
2534

26-
public static Result Succeed() => new(true);
27-
public static Result Fail() => new(false);
28-
public static Result Fail(Error<ErrorCode> error) => new(error);
29-
public static Result Fail(List<Error<ErrorCode>> errors) => new(errors);
30-
public static Result Fail(Exception exception) => new(Error<ErrorCode>.FromException(exception));
35+
public static Result Succeed()
36+
{
37+
return new(true);
38+
}
39+
40+
public static Result Fail()
41+
{
42+
return new(false);
43+
}
44+
45+
public static Result Fail(Error<ErrorCode> error)
46+
{
47+
return new(error);
48+
}
49+
50+
public static Result Fail(List<Error<ErrorCode>> errors)
51+
{
52+
return new(errors);
53+
}
54+
55+
public static Result Fail(Exception exception)
56+
{
57+
return new(Error<ErrorCode>.FromException(exception));
58+
}
3159
}
3260

3361
public class Result<T> : BaseResult<T, ErrorCode>
@@ -48,19 +76,50 @@ internal Result(List<Error<ErrorCode>> errors) : base(errors)
4876
{
4977
}
5078

79+
public static implicit operator Result<T>(T value)
80+
{
81+
return new(value);
82+
}
83+
84+
public static implicit operator Result<T>(Error<ErrorCode> error)
85+
{
86+
return new(error);
87+
}
5188

52-
public static implicit operator Result<T>(T value) => new(value);
53-
public static implicit operator Result<T>(Error<ErrorCode> error) => new(error);
54-
public static implicit operator Result<T>(List<Error<ErrorCode>> errors) => new(errors);
55-
public static implicit operator Result<T>(Exception exception) => new(Error<ErrorCode>.FromException(exception));
89+
public static implicit operator Result<T>(List<Error<ErrorCode>> errors)
90+
{
91+
return new(errors);
92+
}
5693

94+
public static implicit operator Result<T>(Exception exception)
95+
{
96+
return new(Error<ErrorCode>.FromException(exception));
97+
}
5798

58-
public static Result<T> Succeed(T value) => new(value);
59-
public static Result<T> Fail() => new(false);
60-
public static Result<T> Fail(Error<ErrorCode> error) => new(error);
61-
public static Result<T> Fail(List<Error<ErrorCode>> errors) => new(errors);
62-
public static Result<T> Fail(Exception exception) => new(Error<ErrorCode>.FromException(exception));
99+
public static Result<T> Succeed(T value)
100+
{
101+
return new(value);
102+
}
63103

104+
public static Result<T> Fail()
105+
{
106+
return new(false);
107+
}
108+
109+
public static Result<T> Fail(Error<ErrorCode> error)
110+
{
111+
return new(error);
112+
}
113+
114+
public static Result<T> Fail(List<Error<ErrorCode>> errors)
115+
{
116+
return new(errors);
117+
}
118+
119+
public static Result<T> Fail(Exception exception)
120+
{
121+
return new(Error<ErrorCode>.FromException(exception));
122+
}
64123

65124
public Result<T> WithError(Error<ErrorCode> error)
66125
{

0 commit comments

Comments
 (0)