ln.http/HttpRouter.cs

37 lines
1007 B
C#
Raw Normal View History

2019-11-26 12:20:50 +01:00
using System;
using ln.logging;
2020-03-03 17:13:31 +01:00
using ln.http.router;
2019-11-26 12:20:50 +01:00
namespace ln.http
{
2020-01-07 12:23:14 +01:00
public abstract class HttpRouter : IHttpRouter
2019-11-26 12:20:50 +01:00
{
public HttpRouter()
{
}
public abstract IHTTPResource FindResource(HttpRequest httpRequest);
2020-03-03 17:13:31 +01:00
public virtual HttpResponse Route(HttpRoutingContext routingContext, HttpRequest httpRequest)
2019-11-26 12:20:50 +01:00
{
try
{
IHTTPResource resource = FindResource(httpRequest);
return resource.GetResponse(httpRequest);
} catch (Exception e)
{
Logging.Log(e);
if (httpRequest != null)
{
HttpResponse httpResponse = new HttpResponse(httpRequest);
httpResponse.StatusCode = 500;
httpResponse.ContentWriter.WriteLine("500 Internal Server Error");
return httpResponse;
}
return null;
}
}
}
}