/// <summary> /// Identifies problems with dataset governance (e.g. <see cref="Catalogue"/> which have expired <see cref="GovernancePeriod"/>) /// </summary> /// <param name="allGovernanceNode"></param> /// <returns></returns> private string DescribeProblem(AllGovernanceNode allGovernanceNode) { HashSet <int> expiredCatalogueIds = new HashSet <int>(); //Get all expired Catalogue IDs foreach (KeyValuePair <int, HashSet <int> > kvp in _childProvider.GovernanceCoverage) { var gp = _childProvider.AllGovernancePeriods.Single(g => g.ID == kvp.Key); if (gp.IsExpired()) { foreach (var i in kvp.Value) { expiredCatalogueIds.Add(i); } } } //Throw out any covered by a not expired one foreach (KeyValuePair <int, HashSet <int> > kvp in _childProvider.GovernanceCoverage) { var gp = _childProvider.AllGovernancePeriods.Single(g => g.ID == kvp.Key); if (!gp.IsExpired()) { foreach (var i in kvp.Value) { expiredCatalogueIds.Remove(i); } } } var expiredCatalogues = expiredCatalogueIds.Select(id => _childProvider.AllCataloguesDictionary[id]).Where(c => !(c.IsDeprecated /* || c.IsColdStorage || c.IsInternal*/)).ToArray(); if (expiredCatalogues.Any()) { return("Governance Expired On:" + Environment.NewLine + string.Join(Environment.NewLine, expiredCatalogues.Take(5))); } //no expired governance return(null); }
public AllGovernanceNodeMenu(RDMPContextMenuStripArgs args, AllGovernanceNode o) : base(args, o) { Add(new ExecuteCommandCreateNewGovernancePeriod(_activator)); }