Kudu.Core.Deployment.DeploymentManager.PurgeDeployments C# (CSharp) Method

PurgeDeployments() private method

private PurgeDeployments ( IEnumerable results ) : IEnumerable
results IEnumerable
return IEnumerable
        internal IEnumerable<DeployResult> PurgeDeployments(IEnumerable<DeployResult> results)
        {
            if (results.Any())
            {
                var toDelete = new List<DeployResult>();
                toDelete.AddRange(GetPurgeTemporaryDeployments(results));
                toDelete.AddRange(GetPurgeFailedDeployments(results));
                toDelete.AddRange(this.GetPurgeObsoleteDeployments(results));

                if (toDelete.Any())
                {
                    var tracer = _traceFactory.GetTracer();
                    using (tracer.Step("Purge deployment items"))
                    {
                        foreach (DeployResult delete in toDelete)
                        {
                            _status.Delete(delete.Id);

                            tracer.Trace("Remove {0}, {1}, received at {2}",
                                         delete.Id.Substring(0, Math.Min(delete.Id.Length, 9)),
                                         delete.Status,
                                         delete.ReceivedTime);
                        }
                    }

                    results = results.Where(r => !toDelete.Any(i => i.Id == r.Id));
                }
            }

            return results;
        }