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