protected PomonaModule(IPomonaSessionFactory sessionFactory, string modulePath = "/", IPomonaDataSource dataSource = null) : base(modulePath) { Initialize(sessionFactory, dataSource); }
public PomonaSession(IPomonaSessionFactory factory, IContainer container = null) { if (factory == null) { throw new ArgumentNullException(nameof(factory)); } Factory = factory; this.container = container; }
private void Initialize(IPomonaSessionFactory sessionFactory, IPomonaDataSource dataSource) { if (sessionFactory == null) { sessionFactory = PomonaModuleConfigurationBinder.Current.GetFactory(this); } this.sessionFactory = sessionFactory; this.dataSource = dataSource; // HACK TO SUPPORT NANCY TESTING (set a valid host name) Before += ctx => { if (String.IsNullOrEmpty(ctx.Request.Url.HostName)) { ctx.Request.Url.HostName = "test"; } return(null); }; foreach (var route in this.sessionFactory.Routes.Children) { RegisterRoutesFor((ResourceType)route.ResultItemType); } // For root resource links! Register(Get, "/", x => ProcessRequest()); Get[PomonaRouteMetadataProvider.JsonSchema, "/schemas"] = x => GetSchemas(); var clientAssemblyFileName = $"/{TypeMapper.Filter.ClientMetadata.AssemblyName}.dll"; Get[PomonaRouteMetadataProvider.ClientAssembly, clientAssemblyFileName] = x => GetClientLibrary(); RegisterClientNugetPackageRoute(); RegisterSerializationProvider(TypeMapper); }