public void RemoveOldDumps() { // Check if the jiraIssueRepository is populated to avoid deleting dumps with open issues if (settings.UseJiraIntegration && !jiraIssueRepository.IsPopulated) { return; } var jiraExtensionTime = settings.UseJiraIntegration ? TimeSpan.FromDays(settings.JiraIntegrationSettings.JiraDumpRetentionTimeExtensionDays) : TimeSpan.Zero; foreach (var bundle in bundleRepo.GetAll()) { if (bundle == null) { continue; } foreach (var dump in dumpRepo.Get(bundle.BundleId)) { if (dump == null) { continue; } if (settings.UseJiraIntegration && jiraIssueRepository.HasBundleOpenIssues(bundle.BundleId)) { // do not set the dump deletion date if it would shorten the current retention time if (jiraExtensionTime > dump.PlannedDeletionDate - DateTime.Now) { dumpRepo.SetPlannedDeletionDate(dump.Id, DateTime.Now + jiraExtensionTime, JiraRetentionExtensionReason); } } else if (dump.PlannedDeletionDate < DateTime.Now) { RemoveOldDumps(dump); } } } }