protected override void ProcessRecord()
{
base.ProcessRecord();
var infoTextWriter = new LambdaTextWriter(WriteVerbose);
List<ChangeScript> allChangeScripts = new DirectoryScanner(infoTextWriter, Encoding.UTF8, new DirectoryInfo(this.deltasDirectory))
.GetChangeScripts();
var repository = new ChangeScriptRepository(allChangeScripts);
var changeScripts = repository.GetAvailableChangeScripts();
DbmsFactory factory = new DbmsFactory(this.DatabaseType, this.ConnectionString);
var queryExecuter = new QueryExecuter(factory);
var schemaManager = new DatabaseSchemaVersionManager(queryExecuter, factory.CreateDbmsSyntax(), this.TableName);
var appliedChanges = schemaManager.GetAppliedChanges();
var notAppliedChangeScripts = changeScripts.Where(c => appliedChanges.All(a => a.ScriptNumber != c.ScriptNumber));
var descriptionPrettyPrinter = new DescriptionPrettyPrinter();
var objects = notAppliedChangeScripts
.Select(script => new
{
Id = script.ScriptNumber,
Description = descriptionPrettyPrinter.Format(script.ScriptName),
File = script.FileInfo
});
this.WriteObject(objects, true);
}