37 lines
1007 B
C#
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;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|