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; } } } }