public static void Main() { ISharpStoreContext context = new SharpStoreContext(); IHtmlProvider htmlProvider = new HtmlProvider(context); ICustomServiceProvider serviceProvider = new ServiceProvider(context); var routes = new List <Route>() { new Route() { Name = "Html pages", Method = RequestMethod.GET, UrlRegex = "^\\/.+\\.html.*", Callable = (request) => { string pageName = GetPageNameByUrl(request); IHtml html = htmlProvider.GetHtmlPage(pageName); var response = new HttpResponse() { StatusCode = ResponseStatusCode.Ok, ContentAsUtf8 = html?.Print(request.Url) }; return(response); } }, new Route() { Name = "Html pages Post", Method = RequestMethod.POST, UrlRegex = "^\\/.+\\.html$", Callable = (request) => { string pageName = GetPageNameByUrl(request); IHtml html = htmlProvider.GetHtmlPage(pageName); serviceProvider.ExecuteRequest(request); var response = new HttpResponse() { StatusCode = ResponseStatusCode.Ok, ContentAsUtf8 = html.Print(request.Url) }; return(response); } }, new Route() { Name = "Carousel CSS", Method = RequestMethod.GET, UrlRegex = "^/content/css/carousel.css$", Callable = (request) => { var response = new HttpResponse { StatusCode = ResponseStatusCode.Ok, ContentAsUtf8 = File.ReadAllText("../../content/css/carousel.css"), Header = { ContentType = "text/css" } }; return(response); } }, new Route() { Name = "Products CSS", Method = RequestMethod.GET, UrlRegex = "^/content/productsTest.css$", Callable = (request) => { var response = new HttpResponse { StatusCode = ResponseStatusCode.Ok, ContentAsUtf8 = File.ReadAllText("../../content/products.css"), Header = { ContentType = "text/css" } }; return(response); } }, new Route() { Name = "Bootstrap JS", Method = RequestMethod.GET, UrlRegex = "^/bootstrap/js/bootstrap.min.js$", Callable = (request) => new HttpResponse { StatusCode = ResponseStatusCode.Ok, ContentAsUtf8 = File.ReadAllText("../../content/bootstrap/js/bootstrap.min.js"), Header = { ContentType = "application/x-javascript" } } }, new Route() { Name = "Bootstrap CSS", Method = RequestMethod.GET, UrlRegex = "^/bootstrap/css/bootstrap.min.css$", Callable = request => new HttpResponse() { StatusCode = ResponseStatusCode.Ok, ContentAsUtf8 = File.ReadAllText("../../content/bootstrap/css/bootstrap.min.css"), Header = { ContentType = "text/css" } } } }; HttpServer server = new HttpServer(8081, routes); server.Listen(); }
HttpResponse Handle_LocalFile(HttpRequest request, string local_path) { var file_extension = Path.GetExtension(local_path); var response = new HttpResponse(); response.StatusCode = "200"; response.ReasonPhrase = "Ok"; response.Headers["Content-Type"] = QuickMimeTypeMapper.GetMimeType(file_extension); response.Content = File.ReadAllBytes(local_path); return response; }
protected override HttpResponse RouteRequest(Stream inputStream, Stream outputStream, HttpRequest request) { this.Response = base.RouteRequest(inputStream, outputStream, request); return this.Response; }