示例#1
0
文件: Program.cs 项目: gliljas/sfcat
 static void PrintConclusion(string prefix, Conclusion conclusion)
 {
     if (conclusion is MultiConclusions)
     {
         foreach (var c in ((MultiConclusions)conclusion).Conclusions)
         {
             PrintConclusion(prefix + "    ", c);
         }
     }
     else if (conclusion is SuccessConclusion)
     {
         FancyConsole.WriteLine("#g" + prefix + ((SuccessConclusion)conclusion).Message);
     }
     else if (conclusion is ExceptionConclusion)
     {
         FancyConsole.DumpException(prefix, ((ExceptionConclusion)conclusion).Exception);
     }
     else if (conclusion is SingeOutputConclusion)
     {
         FancyConsole.WriteLine(prefix + ((SingeOutputConclusion)conclusion).Output);
     }
     else if (conclusion is MultiOutputConclusion)
     {
         var result  = (MultiOutputConclusion)conclusion;
         var outputs = result.GetOutputStrings();
         if (outputs != null && outputs.Count > 0)
         {
             foreach (var s in outputs)
             {
                 FancyConsole.WriteLine(prefix + s);
             }
         }
     }
 }
示例#2
0
 public static void DumpException(string prefix, Exception exp)
 {
     if (exp == null)
     {
         return;
     }
     FancyConsole.WriteLine("#r" + prefix + exp.Message);
     if (exp is AggregateException)
     {
         foreach (var e in ((AggregateException)exp).InnerExceptions)
         {
             DumpException("    " + prefix, e);
         }
     }
     else if (exp.InnerException != null)
     {
         DumpException("    " + prefix, exp.InnerException);
     }
 }
示例#3
0
 public override void WriteLine(string message)
 {
     FancyConsole.WriteColorCodedLine("#r" + message);
 }