internal static DreamApplication Create(DreamApplicationConfiguration configuration) { var environment = new DreamApplication(configuration); HttpContext.Current.Application[ENV_CONFIG_KEY] = environment; return(environment); }
//--- Constructors --- private DreamApplication(DreamApplicationConfiguration appConfig) { _appConfig = appConfig; _env = new DreamHostService(); Initialize(); RegisterDefaultRoute(); _self = Plug.New(_env.Self.Uri.AtAbsolutePath("/")); }
/// <summary> /// Create configuration from <see cref="ConfigurationManager.AppSettings"/>, execution base path and storage path. /// </summary> /// <param name="basePath">File system path to execution base.</param> /// <param name="storagePath">File sytem path to where the host should keep it's local storage.</param> /// <returns>Configuration instance.</returns> public static DreamApplicationConfigurationBuilder FromAppSettings(string basePath, string storagePath) { var config = new DreamApplicationConfiguration(); var settings = ConfigurationManager.AppSettings; var debugSetting = settings["dream.env.debug"] ?? "debugger-only"; if (string.IsNullOrEmpty(storagePath)) { storagePath = settings["dream.storage.path"] ?? settings["storage-dir"] ?? Path.Combine(basePath, "App_Data"); } if (string.IsNullOrEmpty(storagePath)) { storagePath = Path.Combine(basePath, "storage"); } else if (!Path.IsPathRooted(storagePath)) { storagePath = Path.Combine(basePath, storagePath); } var guid = settings["dream.guid"] ?? settings["guid"]; var hostPath = settings["dream.host.path"] ?? settings["host-path"]; config.Apikey = settings["dream.apikey"] ?? settings["apikey"] ?? StringUtil.CreateAlphaNumericKey(8); config.DreamInParamAuthToken = settings["dream.in.authtoken"]; config.HostConfig = new XDoc("config") .Elem("guid", guid) .Elem("storage-dir", storagePath) .Elem("host-path", hostPath) .Elem("connect-limit", settings["connect-limit"]) .Elem("apikey", config.Apikey) .Elem("debug", debugSetting); var rootRedirect = settings["dream.root.redirect"]; if (!string.IsNullOrEmpty(rootRedirect)) { config.HostConfig.Elem("root-redirect", rootRedirect); } config.ServicesDirectory = settings["dream.service.path"] ?? settings["service-dir"] ?? Path.Combine("bin", "services"); if (!Path.IsPathRooted(config.ServicesDirectory)) { config.ServicesDirectory = Path.Combine(basePath, config.ServicesDirectory); } return(new DreamApplicationConfigurationBuilder(config)); }
//--- Constructors --- private DreamApplicationConfigurationBuilder(DreamApplicationConfiguration configuration) { _configuration = configuration; }
internal static DreamApplication Create(DreamApplicationConfiguration configuration) { var environment = new DreamApplication(configuration); HttpContext.Current.Application[ENV_CONFIG_KEY] = environment; return environment; }
/// <summary> /// Create configuration from <see cref="ConfigurationManager.AppSettings"/>, execution base path and storage path. /// </summary> /// <param name="basePath">File system path to execution base.</param> /// <param name="storagePath">File sytem path to where the host should keep it's local storage.</param> /// <returns>Configuration instance.</returns> public static DreamApplicationConfigurationBuilder FromAppSettings(string basePath, string storagePath) { var config = new DreamApplicationConfiguration(); var settings = ConfigurationManager.AppSettings; var debugSetting = settings["dream.env.debug"] ?? "debugger-only"; if(string.IsNullOrEmpty(storagePath)) { storagePath = settings["dream.storage.path"] ?? settings["storage-dir"] ?? Path.Combine(basePath, "App_Data"); } if(string.IsNullOrEmpty(storagePath)) { storagePath = Path.Combine(basePath, "storage"); } else if(!Path.IsPathRooted(storagePath)) { storagePath = Path.Combine(basePath, storagePath); } var guid = settings["dream.guid"] ?? settings["guid"]; var hostPath = settings["dream.host.path"] ?? settings["host-path"]; config.Apikey = settings["dream.apikey"] ?? settings["apikey"] ?? StringUtil.CreateAlphaNumericKey(8); config.DreamInParamAuthToken = settings["dream.in.authtoken"]; config.HostConfig = new XDoc("config") .Elem("guid", guid) .Elem("storage-dir", storagePath) .Elem("host-path", hostPath) .Elem("connect-limit", settings["connect-limit"]) .Elem("apikey", config.Apikey) .Elem("debug", debugSetting); var rootRedirect = settings["dream.root.redirect"]; if(!string.IsNullOrEmpty(rootRedirect)) { config.HostConfig.Elem("root-redirect", rootRedirect); } config.ServicesDirectory = settings["dream.service.path"] ?? settings["service-dir"] ?? Path.Combine("bin", "services"); if(!Path.IsPathRooted(config.ServicesDirectory)) { config.ServicesDirectory = Path.Combine(basePath, config.ServicesDirectory); } return new DreamApplicationConfigurationBuilder(config); }