Ejemplo n.º 1
0
        public void LocalizablePresenter_RedirectsOnInvalidLanguageCode()
        {
            var config           = DotvvmConfiguration.CreateDefault();
            var presenterFactory = LocalizablePresenter.BasedOnParameter("Lang");

            config.RouteTable.Add("Test", "test/Lang", "test", new { Lang = "en" }, presenterFactory);

            var context = DotvvmTestHelper.CreateContext(config);

            context.Parameters["Lang"] = "cz";
            context.Route = config.RouteTable.First();

            var httpRequest = new TestHttpContext();

            httpRequest.Request = new TestHttpRequest(httpRequest)
            {
                PathBase = ""
            };
            httpRequest.Request.Headers.Add(HostingConstants.SpaContentPlaceHolderHeaderName, new string[0]);

            context.HttpContext = httpRequest;
            var localizablePresenter = presenterFactory(config.ServiceProvider);

            Assert.ThrowsException <DotvvmInterruptRequestExecutionException>(() =>
                                                                              localizablePresenter.ProcessRequest(context));
        }
        protected override void OnInit(IDotvvmRequestContext context)
        {
            var controlBuilderFactory = context.Configuration.ServiceProvider.GetService <IControlBuilderFactory>();

            if (DataContext is CodeStepBase <IDotHtmlCodeValidationObject> ||
                DataContext is CodeStepBase <ICSharpCodeValidationObject> )
            {
                var builder = controlBuilderFactory.GetControlBuilder("Controls/CodeEditorButtons.dotcontrol");
                var control = builder.builder.Value.BuildControl(controlBuilderFactory, context.Services);
                control.SetValue(Internal.UniqueIDProperty, "c1");
                Children.Add(control);
            }
            LocalizablePresenter.BasedOnParameter("Lang");
            base.OnInit(context);
        }
Ejemplo n.º 3
0
        public void SerializeRoutes()
        {
            var c = new DotvvmConfiguration();

            c.RouteTable.Add("route1", "url1", "file1.dothtml", new { a = "ccc" });
            c.RouteTable.Add("route2", "url2/{int}", "file1.dothtml", new { a = "ccc" });
            c.RouteTable.Add("custom presenter", "url3", "", presenterFactory: LocalizablePresenter.BasedOnQuery("lang"));

            c.RouteTable.AddGroup("group1", "group-{lang}/", "", rg => {
                rg.Add("r1", "r1", "g-r1.dothtml");

                rg.AddGroup("g", "g/", "", rg => {
                    rg.Add("r2", "r2", "g-g-r2.dothtml");
                });
            }, presenterFactory: LocalizablePresenter.BasedOnParameter("lang"));

            checkConfig(c);
        }
Ejemplo n.º 4
0
        private void ConfigureRoutes(DotvvmConfiguration config, string applicationPath)
        {
            config.RouteTable.Add("Lesson", "{Lang}/lesson{Lesson}/step{Step}", "Views/lesson.dothtml", new { Lang = "en" }, presenterFactory: LocalizablePresenter.BasedOnParameter("Lang"));

            config.RouteTable.Add("Default", "{Lang:alpha}", "Views/default.dothtml", new { Lang = "en" }, presenterFactory: LocalizablePresenter.BasedOnParameter("Lang"));

            // Uncomment the following line to auto-register all dothtml files in the Views folder
            // config.RouteTable.AutoDiscoverRoutes(new DefaultRouteStrategy(config));
        }