forked from bonesoul/uhttpsharp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHttpServerExtensions.cs
More file actions
45 lines (36 loc) · 1.17 KB
/
Copy pathHttpServerExtensions.cs
File metadata and controls
45 lines (36 loc) · 1.17 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System;
using System.Threading.Tasks;
using uhttpsharp.Listeners;
using uhttpsharp.RequestProviders;
namespace uhttpsharp
{
public static class HttpServerExtensions
{
public static void Use(this HttpServer server, Func<IHttpContext, Func<Task>, Task> method)
{
server.Use(new AnonymousHttpRequestHandler(method));
}
public static IHttpRequestProvider Uses(this IHttpRequestProvider provider, IHttpListener listener)
{
provider.Use(listener);
return provider;
}
public static IHttpRequestProvider Uses(this IHttpRequestProvider provider, IHttpRequestHandler handler)
{
provider.Use(handler);
return provider;
}
}
public class AnonymousHttpRequestHandler : IHttpRequestHandler
{
private readonly Func<IHttpContext, Func<Task>, Task> _method;
public AnonymousHttpRequestHandler(Func<IHttpContext, Func<Task>, Task> method)
{
_method = method;
}
public Task Handle(IHttpContext context, Func<Task> next)
{
return _method(context, next);
}
}
}