public void TestTypes(ITextRender output) { foreach (var pair in RelatedTypes.registry) { pair.Value.Test(); } foreach (var pair in RelatedTypes.registry) { output.AppendLine("Type: " + pair.Key.GetCleanTypeName()); output.nextTabLevel(); var entryRoot = RelatedTypes.Get(pair.Key); foreach (var pi in pair.Value.ClassTypeProperties) { var entry = RelatedTypes.Get(pi.PropertyType); if (!entry.XmlSerializationOk) { output.AppendLine("Property: " + pi.PropertyType.GetCleanTypeName() + " " + pi.Name); output.AppendLine(entry.Message.ToString()); } } if (!entryRoot.XmlSerializationOk) { output.AppendLine("Problems: "); output.AppendLine(entryRoot.Message.ToString()); } output.prevTabLevel(); } }
/// <summary> /// Reports public properties and returns the ones that are not supported/reported /// </summary> /// <typeparam name="T"></typeparam> /// <param name="instance">The instance.</param> /// <param name="output">The output.</param> /// <param name="onlyDeclared">if set to <c>true</c> [only declared].</param> /// <param name="heading">The heading.</param> /// <returns></returns> public static List <PropertyInfo> ReportBase <T>(this T instance, ITextRender output, Boolean onlyDeclared = true, String heading = "") where T : class { List <PropertyInfo> plist = instance.GetType().GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance).ToList(); if (output == null) { return(plist); } if (!heading.isNullOrEmpty()) { output.AppendHeading(heading, 1); output.nextTabLevel(); } foreach (var pi in plist.ToList()) { Boolean removePi = true; if (onlyDeclared && pi.DeclaringType != instance.GetType()) { continue; } Object vl = pi.GetValue(instance, null); if (pi.PropertyType.IsValueType || pi.PropertyType == typeof(String)) { output.AppendLine(pi.Name + "\t\t\t" + vl.toStringSafe()); } else if (vl is List <String> stringList) { output.AppendLine(pi.Name + "\t\t\t" + stringList.toCsvInLine()); } else if (vl is rangeFinder range) { if (range.IsLearned) { range.Report(output, pi.Name, ""); } } else { removePi = false; } if (removePi) { plist.Remove(pi); } } if (!heading.isNullOrEmpty()) { output.prevTabLevel(); } return(plist); }
public void Report(rangeFinder ranger, ITextRender output, String rangeName, String prefix) { output.AppendLine("Range [" + rangeName + "]"); output.nextTabLevel(); foreach (var pair in ranger.GetDictionary(prefix)) { output.AppendPair(pair.Key, pair.Value.ToString("F3")); } output.prevTabLevel(); }
public void Publish(Dictionary <HtmlNode, HtmlSourceAndUrl> documentNodeDictionary, folderNode folderWithResults, ITextRender output) { HtmlSourceAndUrl sourceA = documentNodeDictionary[itemA]; HtmlSourceAndUrl sourceB = documentNodeDictionary[itemB]; output.AppendLine("A: " + sourceA.filepath); output.AppendLine("B: " + sourceB.filepath); output.nextTabLevel(); output.AppendLine("CS: " + ContentSimilarity.ToString("F3")); output.AppendLine("SS: " + StructureSimilarity.ToString("F3")); output.AppendLine("OS: " + OverallSimilarity.ToString("F3")); output.prevTabLevel(); }
public void WriteToOutput(ITextRender output, Boolean isLast) { if (subinstructions.Any()) { String ln = ""; if (name.isNullOrEmpty()) { ln = "{"; } else { ln = $"\"{name}\":{{ "; } output.AppendLine(ln); output.nextTabLevel(); WriteInstructionsToOutput(subinstructions, output); output.prevTabLevel(); if (isLast) { output.AppendLine(" }"); } else { output.AppendLine(" },"); } } else { String ln = ""; if (name.isNullOrEmpty()) { ln = $"{value}"; } else { ln = $"\"{name}\":{value}"; } if (!isLast) { ln = ln + ","; } output.AppendLine(ln); } }