private static IEnumerable<DeployResult> GetPurgeTemporaryDeployments(IEnumerable<DeployResult> results)
{
var toDelete = new List<DeployResult>();
// more than one pending/building, remove all temporary pending
var pendings = results.Where(r => r.Status != DeployStatus.Failed && r.Status != DeployStatus.Success);
if (pendings.Count() > 1)
{
if (pendings.Any(r => !r.IsTemporary))
{
// if there is non-temporary, remove all pending temporary
toDelete.AddRange(pendings.Where(r => r.IsTemporary));
}
else
{
if (pendings.First().Id == results.First().Id)
{
pendings = pendings.Skip(1);
}
// if first item is not pending temporary, remove all pending temporary
toDelete.AddRange(pendings);
}
}
return toDelete;
}