Ejemplo n.º 1
0
            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);
            }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        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) { }
        }
Ejemplo n.º 5
0
            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"]);
            }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 8
0
            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);
            }