ln.http/HttpRouter.cs

37 lines
1007 B
C#

using System;
using ln.logging;
using ln.http.router;
namespace ln.http
{
public abstract class HttpRouter : IHttpRouter
{
public HttpRouter()
{
}
public abstract IHTTPResource FindResource(HttpRequest httpRequest);
public virtual HttpResponse Route(HttpRoutingContext routingContext, HttpRequest httpRequest)
{
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;
}
}
}
}