Ejemplo n.º 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);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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))));
        }