Inheritance: IVersionInfoProvider
 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();
 }
        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();
        }