Skip to content
This repository was archived by the owner on Oct 4, 2024. It is now read-only.

Commit 7d51b76

Browse files
committed
Implementata exception status code 408
close #15
1 parent d371ebb commit 7d51b76

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
namespace CustomLibrary.ProblemDetails.Exception;
2+
3+
public class RequestTimeoutException : System.Exception
4+
{
5+
public RequestTimeoutException()
6+
{
7+
}
8+
9+
public RequestTimeoutException(string message) : base(message)
10+
{
11+
}
12+
13+
public RequestTimeoutException(string message, System.Exception innerException) : base(message, innerException)
14+
{
15+
}
16+
}

src/CustomLibrary.ProblemDetails/Response/Response.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,26 @@ public static ObjectResult NotAcceptable(HttpContext httpContext, System.Excepti
155155

156156
return result;
157157
}
158+
159+
public static ObjectResult RequestTimeout(HttpContext httpContext, System.Exception exc)
160+
{
161+
var statusCode = StatusCodes.Status408RequestTimeout;
162+
var problemDetails = new CustomProblemDetails
163+
{
164+
Status = statusCode,
165+
Type = $"https://httpstatuses.com/{statusCode}",
166+
Instance = httpContext.Request.Path,
167+
Title = "RequestTimeout"
168+
};
169+
170+
problemDetails.Extensions.Add("traceId", Activity.Current?.Id ?? httpContext.TraceIdentifier);
171+
problemDetails.Extensions.Add("errors", exc.Message);
172+
173+
var result = new ObjectResult(problemDetails)
174+
{
175+
StatusCode = statusCode
176+
};
177+
178+
return result;
179+
}
158180
}

0 commit comments

Comments
 (0)