/// <summary> /// Starup process, by default it scans assemblies, sorts modules, configures container, and runs startup for each module /// </summary> /// <param name="config"></param> /// <returns></returns> public virtual IStartupContext ConfigureLocator(IStartupConfiguration config) { IStartupTask startupTaskWithStartModules = null; var startupTaskContext = new StartupTaskContext(_enableImport, _locatorRegistryFactory, config, _locatorDefaultRegistrations, _finalizeRegistry); foreach (var task in CreateStartupTasks()) { task.Prepare(startupTaskContext); if (task is IStartupTaskWithStartupModules withStartupModules && withStartupModules.ExecuteStartupModules) { startupTaskWithStartModules = withStartupModules; continue; } task.Execute(config.TimedTaskManager); } if (startupTaskWithStartModules is null) { throw new Exception("No IStartupTaskWithStartupModules was used in startup tasks!"); } // optionally allows delaying startup until later, must be implemented on IStartupConfiguration instances _delayedStart = () => startupTaskWithStartModules.Execute(config.TimedTaskManager); if (!_enableDelayedStartupModules) { TryExecuteStartupModules(); } return(startupTaskContext.Get <IStartupContext>()); }
public IActionResult Index([FromServices] StartupTaskContext startupTaskContext) { if (startupTaskContext.IsCompleted) { return(Redirect("/")); } return(View()); }
/// <summary> /// Constructor. /// </summary> /// <param name="startupTaskContext">The <see cref="Startup.StartupTaskContext"/>.</param> protected BaseStartupTask(StartupTaskContext startupTaskContext) { this.Context = startupTaskContext ?? throw new ArgumentNullException(nameof(startupTaskContext)); }
/// <inheritdoc /> public InitializeApplicationStartupTask(StartupTaskContext startupTaskContext) : base(startupTaskContext) { }
/// <summary> /// Constructor. /// </summary> /// <param name="taskContext">The <see cref="StartupTaskContext"/>.</param> public StartupHealthCheck(StartupTaskContext taskContext) { this.taskContext = taskContext ?? throw new ArgumentNullException(nameof(taskContext)); }
public DbStartupTask(StartupTaskContext startupTaskContext, IDocumentStore store) { _startupTaskContext = startupTaskContext; _store = store; }
/// <inheritdoc /> public InitializeDatabaseStartupTask(StartupTaskContext startupTaskContext, BaseDbContext dbContext = null) : base(startupTaskContext) { this.dbContext = dbContext; }
/// <inheritdoc /> public InitializeApplicationStartupTask(StartupTaskContext startupTaskContext, DefaultDbContext dbContext = null) : base(startupTaskContext) { this.dbContext = dbContext; }