public static void CheckConsistency(Taxonomy taxonomy, ValidationRule rule) { var sb = new StringBuilder(); var inconsistent = false; sb.AppendLine(rule.RawInfo); foreach (var p in rule.Parameters) { var tfcs = ""; var tfc = p.TaxFacts.Count; var tfall = p.TaxFacts.SelectMany(i => i).Count(); if (tfall > tfc && !p.BindAsSequence) { } tfcs = String.Format("{0}: {2}/{1}", p.Name, tfc, tfall); sb.AppendLine(p.ToString() + " TFCS: " + tfcs); foreach (var factgroup in p.TaxFacts) { if (!p.BindAsSequence && factgroup.Count > 1) { inconsistent = true; sb.AppendLine(taxonomy.GetFactStringKeys(p.TaxFacts)); break; } } } sb.AppendLine("___________"); if (rule.ID == "eba_v0204_m") { } if (inconsistent) { Logger.WriteLine(String.Format("Can't resolve rule {0}", rule.ID)); var validationfolder = TaxonomyEngine.LogFolder + "Validation\\"; var logfilename = Utilities.Strings.GetFileName(Logger.LogPath); var outputpath = validationfolder + "Issues_" + logfilename; Utilities.FS.AppendAllText(outputpath, sb.ToString()); } }