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); }
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); }
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)); }