-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHttpErrorRoute.cs
More file actions
31 lines (25 loc) · 830 Bytes
/
HttpErrorRoute.cs
File metadata and controls
31 lines (25 loc) · 830 Bytes
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
28
29
30
31
using System;
using System.Collections.Generic;
namespace SimpleHttp
{
public class HttpErrorRoute
{
protected readonly Func<Exception, HttpRequest, HttpResponse, bool> callback;
public static bool InvokeAll(List<HttpErrorRoute> routes, Exception e, HttpRequest request, HttpResponse response)
{
foreach (var route in routes)
{
if (!route.Invoke(e, request, response))
return false;
}
return true;
}
public HttpErrorRoute(Func<Exception, HttpRequest, HttpResponse, bool> callback) =>
this.callback = callback;
public HttpErrorRoute(Action<Exception, HttpRequest, HttpResponse> callback)
: this((e, req, res) => { callback(e, req, res); return false; })
{ }
public bool Invoke(Exception e, HttpRequest request, HttpResponse response) =>
callback(e, request, response);
}
}