public bool Install(string moduleCode, Version version, List<System.Reflection.Assembly> migrationContainers)
{
// compute the diff
// sort
// run
// update version provider
// report
IVersionInfoProvider versionProvider = new DBVersionProvider();
Version v1 = versionProvider.GetLatestVersion(moduleCode);
List<Migration> allMigrations = extractMigrations(migrationContainers);
List<Migration> effectiveMigrations = diff(v1, version, allMigrations);
IMigrationSorter sorter = new BuildNumberSorter();
effectiveMigrations = sorter.Sort(effectiveMigrations);
// ...
throw new NotImplementedException();
}