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

GetPurgeObsoleteDeployments() private method

private GetPurgeObsoleteDeployments ( IEnumerable results ) : IEnumerable
results IEnumerable
return IEnumerable
        private IEnumerable<DeployResult> GetPurgeObsoleteDeployments(IEnumerable<DeployResult> results)
        {
            var toDelete = new List<DeployResult>();

            // limit number of ever-success items
            // the assumption is user will no longer be interested on these items
            var succeed = results.Where(r => r.LastSuccessEndTime != null);
            if (succeed.Count() > MaxSuccessDeploymentResults)
            {
                // always maintain active and inprogress item
                var activeId = _status.ActiveDeploymentId;
                var purge = succeed.Skip(MaxSuccessDeploymentResults).Where(r =>
                    r.Id != activeId && (r.Status == DeployStatus.Failed || r.Status == DeployStatus.Success));

                toDelete.AddRange(purge);
            }

            return toDelete;
        }