internal void GetUsedFactDomainNamespaces(List <string> used, FactCollection Facts) { var factNamespaces = new HashSet <string>(); foreach (var fact in Facts.Where(f => !string.IsNullOrEmpty(f.Value) || f.Facts.Count > 0)) { if (fact.Value.Contains(':')) { var prefix = fact.Value.Split(':')[0]; var ns = Namespaces.LookupNamespace(prefix); if (ns != null) { factNamespaces.Add(ns); } } else { var prefix = fact.Metric.Name.Split(':')[0]; var ns = Namespaces.LookupNamespace(prefix); if (ns != null) { factNamespaces.Add(ns); } GetUsedFactDomainNamespaces(used, fact.Facts); } } used.AddRange(factNamespaces); }
internal void GetUsedContexts(FactCollection Facts, HashSet <string> usedIds) { var facts = Facts.Where(f => f.Context != null || f.Facts.Count > 0); foreach (var fact in facts) { if (fact.Facts.Count == 0) { usedIds.Add(fact.Context.Id); } else { GetUsedContexts(fact.Facts, usedIds); } } }