protected override void Load(ContainerBuilder builder) { ConfigurationConfigurator .RegisterConfigurationSettings() .FromAssemblies(typeof(WebAutofacModule).Assembly) .RegisterWithContainer(s => builder.RegisterInstance(s).AsSelf().SingleInstance()) .AllowConfigurationEntriesThatDoNotHaveSettingsClasses(true) .DoYourThing(); builder.Register(_ => FrankenwikiConfiguration.Create() .WithWikiSourcePath(_.Resolve <WikiSourcePathSetting>()) .Build()) .AsSelf(); builder .RegisterType <Frankengenerator>() .As <IFrankengenerator>(); builder .RegisterType <InMemoryFrankenstore>() .As <IFrankenstore>() .SingleInstance(); builder .RegisterType <InMemoryFrankensearch>() .As <IFrankensearch>() .SingleInstance(); }
public void AndGivenTheBrowser() { _browser = new Browser(with => { with.Module <PageModule>(); with.Dependency(_store); with.Dependency(FrankenwikiConfiguration.Create() .WithWikiSourcePath("test-wiki") .Build()); }); }
protected override void Load(ContainerBuilder builder) { builder.Register(_ => FrankenwikiConfiguration.Create() .WithWikiSourcePath("my-wiki") .Build()); builder .RegisterType <Frankengenerator>() .As <IFrankengenerator>(); builder .RegisterType <InMemoryFrankenstore>() .As <IFrankenstore>() .SingleInstance(); builder .RegisterType <InMemoryFrankensearch>() .As <IFrankensearch>() .SingleInstance(); }
public PageModule( IFrankenstore store, IRootPathProvider rootPathProvider, FrankenwikiConfiguration configuration) { _rootPathProvider = rootPathProvider; _configuration = configuration; var strategies = new Func <string, Task <dynamic> >[] { slug => GetStaticResourceForSlug(slug), slug => GetFrankenpageResponseForSlug(store, slug), }; Get["/wiki", true] = async(o, token) => await GetFrankenpageResponseForSlug(store, "index"); Get["/wiki/{slug*}", true] = async(o, token) => { var slug = (string)o.slug; // TODO HACK this is to allow routes like /wiki/cat.jpg/ which without the // trailing slash will fail because of a NancyFx bug in 1.1.0: // https://github.com/NancyFx/Nancy/issues/1829 slug = slug.TrimEnd('/'); foreach (var strategy in strategies) { var result = await strategy(slug); if (result != null) { return(result); } } return((dynamic) new NotFoundResponse()); }; Get["/echo/{slug*}"] = _ => _.slug; Get["/echo2/{slug}/hi"] = _ => _.slug; }