Exemple #1
0
        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);
                    }
                }
            }
        }