ShellContext CreateShellContext(ShellSettings settings) { if (settings.State.CurrentState == TenantState.State.Uninitialized) { Logger.Debug("Creating shell context for tenant {0} setup", settings.Name); return(_shellContextFactory.CreateSetupContext(settings)); } Logger.Debug("Creating shell context for tenant {0}", settings.Name); return(_shellContextFactory.CreateShellContext(settings)); }
private void ExecuteOnTenantScope(ShellSettings settings, Action <IWorkContextScope> action) { var shellContext = _shellContextFactory.CreateShellContext(settings); using (var container = _shellContainerFactory.CreateContainer(shellContext.Settings, shellContext.Blueprint)) { using (var environment = container.CreateWorkContextScope()) { action(environment); } } }
public ShellContext CreateShellContext(IShellSettings settings) { if (settings.State == TenantState.Uninitialized) { if (_logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug("Creating shell context for tenant {0}", settings.Name); } return(_shellContextFactory.CreateSetupContext(settings)); } _logger.LogDebug("Creating shell context for tenant {0}", settings.Name); return(_shellContextFactory.CreateShellContext(settings)); }
public async Task Invoke(HttpContext httpContext) { var currentApplicationServices = httpContext.ApplicationServices; var currentRequestServices = httpContext.RequestServices; var shellSettings = _shellSettingsManager.LoadSettings(); var shellSetting = shellSettings.SingleOrDefault(x => x.RequestUrlPrefix == httpContext.Request.Host.Value); if (shellSetting != null) { using (var shell = _shellContextFactory.CreateShellContext(shellSetting)) { httpContext.RequestServices = shell.LifetimeScope; shell.Shell.Activate(); await _next.Invoke(httpContext); } } else { await _next.Invoke(httpContext); } }
/// <summary> /// Creates a shell context based on shell settings /// </summary> public ShellContext CreateShellContext(ShellSettings settings) { if (settings.State == TenantState.Uninitialized) { if (_logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug("Creating shell context for tenant {0} setup", settings.Name); } return(_shellContextFactory.CreateSetupContext(settings)); } else if (settings.State == TenantState.Disabled) { if (_logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug("Creating disabled shell context for tenant {0} setup", settings.Name); } return(new ShellContext { Settings = settings }); } else if (settings.State == TenantState.Running || settings.State == TenantState.Initializing) { if (_logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug("Creating shell context for tenant {0}", settings.Name); } return(_shellContextFactory.CreateShellContext(settings)); } else { throw new InvalidOperationException("Unexpected shell state for " + settings.Name); } }
private ShellContext CreateShellContext(ShellSettings settings) { Logger.Debug("为租户 {0} 创建外壳上下文", settings.Name); return(_shellContextFactory.CreateShellContext(settings)); }
private ShellContext CreateShellContext(ShellSettings settings) { Logger.DebugFormat("Creating shell context for tenant {0}", settings.Name); return(shellContextFactory.CreateShellContext(settings)); }