Skip to content

Commit 3bbd8d3

Browse files
authored
Merge pull request #43 from PandaTechAM/development
added extensions
2 parents 7e5faf6 + efc839f commit 3bbd8d3

File tree

3 files changed

+57
-10
lines changed

3 files changed

+57
-10
lines changed
Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,53 @@
1-
namespace ResponseCrafter.HttpExceptions;
1+
using System.Collections;
2+
using System.Diagnostics.CodeAnalysis;
23

3-
public class ServiceUnavailableException(string message = ServiceUnavailableException.DefaultMessage) : ApiException(503, message)
4+
namespace ResponseCrafter.HttpExceptions;
5+
6+
public class ServiceUnavailableException(string message = ServiceUnavailableException.DefaultMessage)
7+
: ApiException(503, message)
48
{
5-
private const string DefaultMessage = "the_server_is_currently_unavailable._please_try_again_later.";
9+
private const string DefaultMessage = "the_server_is_currently_unavailable._please_try_again_later.";
10+
11+
public static void ThrowIfNull([NotNull] object? value, string exceptionMessage)
12+
{
13+
if (value is null)
14+
{
15+
throw new ServiceUnavailableException(exceptionMessage);
16+
}
17+
}
18+
19+
public static void ThrowIfNullOrEmpty([NotNull] IEnumerable? value, string exceptionMessage)
20+
{
21+
// ReSharper disable once GenericEnumeratorNotDisposed
22+
if (value is null || !value.GetEnumerator()
23+
.MoveNext())
24+
{
25+
throw new ServiceUnavailableException(exceptionMessage);
26+
}
27+
}
28+
29+
public static void ThrowIfNullOrWhiteSpace([NotNull] string? value, string exceptionMessage)
30+
{
31+
if (string.IsNullOrWhiteSpace(value))
32+
{
33+
throw new ServiceUnavailableException(exceptionMessage);
34+
}
35+
}
36+
37+
38+
public static void ThrowIf(bool condition, string exceptionMessage)
39+
{
40+
if (condition)
41+
{
42+
throw new ServiceUnavailableException(exceptionMessage);
43+
}
44+
}
45+
46+
public static void ThrowIfNullOrNegative([NotNull] decimal? value, string exceptionMessage)
47+
{
48+
if (value is < 0 or null)
49+
{
50+
throw new ServiceUnavailableException(exceptionMessage);
51+
}
52+
}
653
}

src/ResponseCrafter/ResponseCrafter.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
<Copyright>MIT</Copyright>
99
<PackageIcon>pandatech.png</PackageIcon>
1010
<PackageReadmeFile>Readme.md</PackageReadmeFile>
11-
<Version>3.0.0</Version>
11+
<Version>3.0.1</Version>
1212
<PackageId>Pandatech.ResponseCrafter</PackageId>
1313
<PackageTags>Pandatech, library, exception handler, exception, middleware, Api response</PackageTags>
1414
<Title>ResponseCrafter</Title>
1515
<Description>Handling exceptions, custom Dtos.</Description>
1616
<RepositoryUrl>https://github.com/PandaTechAM/be-lib-response-crafter</RepositoryUrl>
17-
<PackageReleaseNotes>Removed base36 support and added new extension methods on errors</PackageReleaseNotes>
17+
<PackageReleaseNotes>Added extensions, updated nugets</PackageReleaseNotes>
1818
</PropertyGroup>
1919

2020
<ItemGroup>
@@ -24,9 +24,9 @@
2424

2525
<ItemGroup>
2626
<PackageReference Include="Humanizer" Version="2.14.1" />
27-
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.7" />
28-
<PackageReference Include="PandaTech.FluentImporter" Version="2.0.12" />
29-
<PackageReference Include="Pandatech.GridifyExtensions" Version="1.5.1" />
27+
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.8" />
28+
<PackageReference Include="PandaTech.FluentImporter" Version="2.0.13" />
29+
<PackageReference Include="Pandatech.GridifyExtensions" Version="1.5.4" />
3030
<PackageReference Include="PandaTech.ServiceResponse" Version="1.2.12" />
3131
</ItemGroup>
3232

test/ResponseCrafter.Demo/ResponseCrafter.Demo.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
</PropertyGroup>
99

1010
<ItemGroup>
11-
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.7" />
12-
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
11+
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.8" />
12+
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.7.3" />
1313
</ItemGroup>
1414

1515
<ItemGroup>

0 commit comments

Comments
 (0)