private HttpResponse RouteRequest() { var routes = this.Routes .Where(x => Regex.Match(Request.Url, x.UrlRegex).Success) .ToList(); if (!routes.Any()) { return(HttpResponseBuilder.NotFound()); } var route = routes.SingleOrDefault(x => x.Method == Request.Method); if (route == null) { return new HttpResponse() { StatusCode = ResponseStatusCode.MethodNotAllowed } } ; // trigger the route handler... try { return(route.Callable(Request)); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); return(HttpResponseBuilder.InternalServerError()); } } }
private HttpResponse RouteRequest() { var routes = this.routes .Where(x => Regex.Match(this.request.Url, x.UrlRegex).Success) .ToList(); var test = this.routes.FirstOrDefault().UrlRegex; if (!routes.Any()) { return(HttpResponseBuilder.NotFound()); } var route = routes.FirstOrDefault(x => x.Method == this.request.Method); if (route == null) { return(new HttpResponse() { StatusCode = ResponseStatusCode.MethodNotAllowed }); } try { return(route.Callable(this.request)); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); return(HttpResponseBuilder.InternalServerError()); } }
private HttpResponse RouteRequest() { var routes = this.Routes .Where(x => Regex.Match(Request.Url, x.UrlRegex).Success) .ToList(); if (!routes.Any()) { return(HttpResponseBuilder.NotFound()); } var route = routes.FirstOrDefault(x => x.Method == Request.Method); if (route == null) { return new HttpResponse() { StatusCode = ResponseStatusCode.MethodNotAllowed } } ; // trigger the route handler... try { HttpResponse response; if (!Request.Header.Cookies.Contains("sessionId") || this.Request.Session == null) { var session = SessionCreator.Create(); var sessionCookie = new Cookie("sessionId", session.Id + "; HttpOnly; path=/"); this.Request.Session = session; response = route.Callable(this.Request); response.Header.AddCookie(sessionCookie); } else { response = route.Callable(this.Request); } return(response); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); return(HttpResponseBuilder.InternalServerError()); } } }
private HttpResponse RouteRequest() { { var routes = this.Routes .Where(x => Regex.Match(Request.Url, x.UrlRegex).Success) .ToList(); if (!routes.Any()) { return(HttpResponseBuilder.NotFound()); } var route = routes.SingleOrDefault(x => x.Method == Request.Method); if (route == null) { return new HttpResponse() { StatusCode = ResponseStatusCode.MethodNotAllowed } } ; #region FIleSystemHandler // extract the path if there is one //var match = Regex.Match(request.Url, route.UrlRegex); //if (match.Groups.Count > 1) //{ // request.Path = match.Groups[1].Value; //} //else //{ // request.Path = request.Url; //} #endregion // trigger the route handler... try { return(route.Callable(Request)); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); return(HttpResponseBuilder.InternalServerError()); } } }