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); } } } }
private async Task <DumpViewModel> ToDumpViewModel(DumpMetainfo dumpMetainfo, bool includeSimilarities = false) { if (dumpMetainfo == null) { return(null); } var similarities = !includeSimilarities ? null : new Similarities(await similarityService.GetSimilarities(dumpMetainfo.Id)); return(new DumpViewModel(dumpMetainfo, new BundleViewModel(bundleRepo.Get(dumpMetainfo.BundleId)), similarities, new RetentionViewModel( dumpMetainfo, dumpRepo.IsPrimaryDumpAvailable(dumpMetainfo.Id), TimeSpan.FromDays(settings.WarnBeforeDeletionInDays), settings.UseJiraIntegration && jiraIssueRepository.IsPopulated && jiraIssueRepository.HasBundleOpenIssues(dumpMetainfo.BundleId)))); }