コード例 #1
0
        /// <summary>
        /// Invokes the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="migrationsRunner">Migrations runner.</param>
        public async Task Invoke(
            HttpContext context,
            IMigrationsRunner migrationsRunner)
        {
            if (CanMigrate())
            {
                SetupCache();

                await migrationsRunner.MigrateAsync();
            }
        }
コード例 #2
0
        /// <summary>
        /// Invokes the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="databaseFactory">Database factory for getting <see cref="IMigrationsRunner"/>.</param>
        public async Task Invoke(HttpContext context, IDatabaseFactory databaseFactory)
        {
            string databaseName = null;

            if (context.Request.Path.HasValue)
            {
                databaseName = context.Request.Path.Value.Trim('/');
            }
            if (string.IsNullOrEmpty(databaseName))
            {
                databaseName = KormBuilder.DefaultConnectionStringName;
            }
            IMigrationsRunner migrationsRunner = databaseFactory.GetMigrationsRunner(databaseName);

            if ((migrationsRunner != null) && CanMigrate(databaseName))
            {
                SetupCache(databaseName);
                await migrationsRunner.MigrateAsync();
            }
        }