Exemple #1
0
        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;
        }