Ejemplo n.º 1
0
        /// <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());
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="startupTaskContext">The <see cref="Startup.StartupTaskContext"/>.</param>
 protected BaseStartupTask(StartupTaskContext startupTaskContext)
 {
     this.Context = startupTaskContext ?? throw new ArgumentNullException(nameof(startupTaskContext));
 }
Ejemplo n.º 4
0
 /// <inheritdoc />
 public InitializeApplicationStartupTask(StartupTaskContext startupTaskContext)
     : base(startupTaskContext)
 {
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="taskContext">The <see cref="StartupTaskContext"/>.</param>
 public StartupHealthCheck(StartupTaskContext taskContext)
 {
     this.taskContext = taskContext ?? throw new ArgumentNullException(nameof(taskContext));
 }
Ejemplo n.º 6
0
 public DbStartupTask(StartupTaskContext startupTaskContext, IDocumentStore store)
 {
     _startupTaskContext = startupTaskContext;
     _store = store;
 }
Ejemplo n.º 7
0
 /// <inheritdoc />
 public InitializeDatabaseStartupTask(StartupTaskContext startupTaskContext, BaseDbContext dbContext = null)
     : base(startupTaskContext)
 {
     this.dbContext = dbContext;
 }
Ejemplo n.º 8
0
 /// <inheritdoc />
 public InitializeApplicationStartupTask(StartupTaskContext startupTaskContext, DefaultDbContext dbContext = null)
     : base(startupTaskContext)
 {
     this.dbContext = dbContext;
 }