public void Can_Resolve_Virtual_Path_For_Page_With_Query_Parameter() { // Given var store = A.Fake <IDocumentStore>(); var mapper = A.Fake <IControllerMapper>(); var context = A.Fake <HttpContextBase>(); var trie = A.Fake <IRouteResolverTrie>(); var currentPage = new FakePage { Metadata = { Url = "fake-page" } }; context.Request.RequestContext.RouteData.Values[DefaultRoute.CurrentPageKey] = currentPage; // When var route = new DefaultRoute(new VirtualPathResolver(), new DefaultRouteResolver(trie), store, mapper); VirtualPathData data = route.GetVirtualPath(context.Request.RequestContext, new RouteValueDictionary(new { currentPage, page = "1", mode = "edit" })); // Then Assert.NotNull(data); Assert.Equal("fake-page/?page=1&mode=edit", data.VirtualPath); }
private static void StartApplication(IApp app, ContainerBuilder container) { container.RegisterControllers(app.GetType().Assembly); container.RegisterInstance(app).AsSelf().AsImplementedInterfaces(); ControllerBuilder.Current.DefaultNamespaces.Add(app.GetType().Namespace); DefaultRoute.CreateAppRoute(app.GetType()); app.OnApplicationStart(container); }
/// <summary> /// Route the request. /// </summary> /// <param name="context">HTTP context</param> /// <returns><see cref="ModuleResult.Stop"/> will stop all processing including <see cref="IHttpModule.EndRequest"/>.</returns> /// <remarks>Simply change the request URI to something else.</remarks> public ModuleResult Route(IHttpContext context) { _logger.Trace("Pipeline => RouteModule.BeginRequest"); MatchResult results = _routes.Match(context); if (results != null) { if (results.MatchStatus.Success) { DefaultRoute defaultRoute = results.MappedRoute.defaults; string path = String.Empty; if (!string.IsNullOrEmpty(defaultRoute.controller)) { path += string.Concat("/", defaultRoute.controller); } if (!string.IsNullOrEmpty(defaultRoute.action)) { path += string.Concat("/", defaultRoute.action); } if (!string.IsNullOrEmpty(defaultRoute.id)) { path += string.Concat("?id=", defaultRoute.id); } if (string.IsNullOrEmpty(path)) { path = context.Response.RequestMessage.RequestUri.AbsolutePath; } Uri url = context.Response.RequestMessage.RequestUri; string port = string.Empty; if (url.Port != 80) { port = string.Concat(";", url.Port); } context.RouteUri = new Uri( string.Concat(url.Scheme, "://", url.Host, port, path)); } return(ModuleResult.Continue); } context.Response.StatusCode = HttpStatusCode.Forbidden; context.Response.ReasonPhrase = "Forbidden"; return(ModuleResult.Stop); }
void ClientHandler(IAsyncResult result) { try { HttpListenerContext context = listener.EndGetContext(result); listener.BeginGetContext(ClientHandler, null); var request = new HttpRequest(context.Request); var response = new HttpResponse(context.Response); try { if (LogAllRequests) { Log(request.RequestId, $"{request.Method} request for '{request.Url}' from '{request.ClientIP}'."); } if (HttpRoute.InvokeMatched(Routes, request, response)) { DefaultRoute.Invoke(request, response); } } catch (HttpListenerException) { throw; } catch (Exception e) { Log(request.RequestId, $"{e.GetType()} : {e.Message}"); if (ResetResponseOnError) { if (response.IsDataSent) { response.Close(); } else { response.Reset(); } } if (HttpErrorRoute.InvokeAll(ErrorRoutes, e, request, response)) { DefaultErrorRoute.Invoke(e, request, response); } } if (response.IsOpen) { response.Close(); } } catch (HttpListenerException) { } }
public void Can_Resolve_Home_Page_With_Default_Action(string path) { // Given var mapper = A.Fake <IControllerMapper>(); var context = A.Fake <HttpContextBase>(); var trie = A.Fake <IRouteResolverTrie>(); var theTrie = new Trie { Id = DefaultBrickPileBootstrapper.TrieId, RootNode = new TrieNode { PageId = "pages/1", Url = "page" } }; A.CallTo(() => context.Request.Path).Returns(path); A.CallTo(() => mapper.GetControllerName(typeof(FakeController))).Returns("FakeController"); A.CallTo(() => mapper.ControllerHasAction("FakeController", "index")).Returns(true); A.CallTo(() => trie.LoadTrie()).Returns(theTrie); // When RouteData data; using (var store = NewDocumentStore()) { using (var session = store.OpenSession()) { var page = new FakePage { Id = "pages/1" }; session.Store(page); session.SaveChanges(); var route = new DefaultRoute(new VirtualPathResolver(), new DefaultRouteResolver(trie), store, mapper); data = route.GetRouteData(context); } } //Then Assert.NotNull(data); Assert.Equal("index", data.Values["action"]); Assert.Equal("FakeController", data.Values["controller"]); }
static void Main() { //var wexbimFileDestinationPath = "C:\\Users\\zno\\source\\repos\\ifcViewer\\ifcViewer\\wwwroot\\wexbim_files\\SampleHouse.wexbim"; //WEXBIMFactory.CreateWEXFileFromIFCModel("SampleHouse.ifc", wexbimFileDestinationPath); string ModelName = "A2-400-V-0100000.ifc"; string Path = "C:\\Users\\zno\\source\\repos\\ifcViewer\\ifcViewer\\IFC_Models\\" + ModelName; var ifcRepo = new IFCRepository(Path); ifcRepo.GetHierarchy(null); Application.Current.Use(new HtmlFromJsonProvider()); Application.Current.Use(new PartialToStandaloneHtmlProvider()); DefaultRoute.Register(); }
/// <summary> /// Log the loaded routes. /// </summary> private void LogRoutes() { _logger.Info("Ignored routes loaded from RouteConfig (HttpApplication) class:"); foreach (string pattern in _routes.IngoredRoutes) { _logger.Info(" route regex: '{0}'", pattern); } _logger.Info("Mapped routes loaded from RouteConfig (HttpApplication) class:"); foreach (MappedRoute items in _routes.MappedRoutes) { MappedRoute item = items; DefaultRoute route = item.defaults; _logger.Info(" route name:'{0}' regex:'{1}' => default: controller='{2}' action='{3}' id='{4}'", item.name, item.regex, route.controller, route.action, route.id); } }
public void Returns_Null_If_Request_Is_For_Static_Content(string path) { // Given var store = NewDocumentStore(); var mapper = A.Fake <IControllerMapper>(); var context = A.Fake <HttpContextBase>(); var trie = A.Fake <IRouteResolverTrie>(); A.CallTo(() => context.Request.Path).Returns(path); A.CallTo(() => mapper.GetControllerName(typeof(FakeController))).Returns("FakeController"); A.CallTo(() => mapper.ControllerHasAction("FakeController", "index")).Returns(false); // When RouteData data; using (var session = store.OpenSession()) { var page = new FakePage(); session.Store(page); var node = new TrieNode { PageId = page.Id }; session.Store(new Trie { Id = DefaultBrickPileBootstrapper.TrieId, RootNode = node }); session.SaveChanges(); var route = new DefaultRoute(new VirtualPathResolver(), new DefaultRouteResolver(trie), store, mapper); data = route.GetRouteData(context); } // Then Assert.Null(data); }