private IEnumerable<LastRunDocument> CalculateLastRunState(Site site)
{
var dt = this.InitialLastRunState.ToDictionary(l => l.Path);
foreach (var document in site.Documents.Where(d => !d.Cloned && !d.Unmodified))
{
var contributors = document.AllContributingFiles()
.Select(d => new LastRunContributingFile(d.SourceRelativePath, d.Modified));
var lastRunDocument = new LastRunDocument(document.SourceRelativePath, document.Modified, contributors);
dt.Remove(document.SourceRelativePath);
yield return lastRunDocument;
}
foreach (var lrd in dt.Values)
{
yield return lrd;
}
}