public MigrationRunner(IMigrationProvider migrationProvider, IMigrationLog migrationLog, IMigrationSynchronizationContext synchronizationContext, IActivator <IMigration> activator)
 {
     this.migrationProvider      = migrationProvider;
     this.migrationLog           = migrationLog;
     this.activator              = activator;
     this.synchronizationContext = synchronizationContext;
 }
 public static Task RunSynchronizedAsync(this IMigrationSynchronizationContext context, Func <Task> action)
 {
     return(context.RunSynchronizedAsync <object>(async() =>
     {
         await action();
         return null;
     }));
 }
 public MigrationRunner(IMigrationProvider migrationProvider, IMigrationLog migrationLog, IMigrationSynchronizationContext synchronizationContext)
     : this(migrationProvider, migrationLog, synchronizationContext, new ReflectionActivator <IMigration>())
 {
 }