-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathToStatusCodeHttpResultE.cs
More file actions
27 lines (24 loc) · 1.29 KB
/
ToStatusCodeHttpResultE.cs
File metadata and controls
27 lines (24 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace CSharpFunctionalExtensions.HttpResults.Generators.UnitResultExtensions;
internal class ToStatusCodeHttpResultE : IGenerateMethods
{
public string Generate(string mapperClassName, string resultErrorType, string httpResultType)
{
return $$"""
/// <summary>
/// Returns a <see cref="StatusCodeHttpResult"/> in case of success result. Returns custom mapping in case of failure. You can override the success status code.
/// </summary>
public static Results<StatusCodeHttpResult, {{httpResultType}}> ToStatusCodeHttpResult(this UnitResult<{{resultErrorType}}> result, int successStatusCode = 204)
{
if (result.IsSuccess) return TypedResults.StatusCode(successStatusCode);
return ErrorMapperInstances.{{mapperClassName}}.Map(result.Error);
}
/// <summary>
/// Returns a <see cref="StatusCodeHttpResult"/> in case of success result. Returns custom mapping in case of failure. You can override the success status code.
/// </summary>
public static async Task<Results<StatusCodeHttpResult, {{httpResultType}}>> ToStatusCodeHttpResult(this Task<UnitResult<{{resultErrorType}}>> result, int successStatusCode = 204)
{
return (await result).ToStatusCodeHttpResult(successStatusCode);
}
""";
}
}