andrew4582

TTrace POC Aug08_2010

Aug 8th, 2010
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.56 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6. using System.Diagnostics;
  7. using System.Drawing;
  8.  
  9. namespace Mvc2App.Controllers {
  10. using Models;
  11. using System.Text;
  12. using TraceTool;
  13. [HandleError]
  14. public class HomeController:Controller {
  15. public SamplePOCO MyKnownColors { get; set; }
  16. public List<SamplePOCO> ListOfModels { get; set; }
  17. public HomeController() {
  18.  
  19. MyKnownColors = new SamplePOCO();
  20.  
  21. ListOfModels = new List<SamplePOCO>();
  22. MyKnownColors.Id = 1;
  23. MyKnownColors.Name = "Known Colors";
  24. var names = Enum.GetNames(typeof(KnownColor));
  25.  
  26. foreach(string name in names) {
  27. KnownColor kcolor = (KnownColor)Enum.Parse(typeof(KnownColor),name);
  28. MyKnownColors.Colors.Add(new MyColor(kcolor));
  29. }
  30. MyKnownColors.Colors = MyKnownColors.Colors
  31. .OrderBy(c => c.AsArgb).ToList();
  32.  
  33.  
  34. }
  35. public ActionResult Index() {
  36. TTrace.Debug.EnterMethod("HomeController->Index()");
  37.  
  38. if(!added) {
  39. Trace.Listeners.Add(new TTraceListener());
  40.  
  41. TTrace.WinTrace.SetLogFile("c:\\Mvc2App.xml",2);
  42.  
  43. added = true;
  44.  
  45. }
  46. ViewData["Message"] = "Trace Prof of Concept";
  47.  
  48. string data = TraceDiagnostics();
  49.  
  50. ViewData["TraceTTrace"] = TraceTTrace(new StringBuilder(data));
  51. ViewData["TraceDiagnostics"] = data;
  52.  
  53. TTrace.Debug.ExitMethod("HomeController->Index()");
  54. return View();
  55. }
  56. public ActionResult DebugAlot() {
  57. int count = 10;
  58. int total = 0;
  59.  
  60. if(TempData["DebugAlot"] != null)
  61. count = (int)TempData["DebugAlot"];
  62.  
  63. string data = TraceDiagnostics();
  64. for(int i = 0;i < count;i++) {
  65. total += TraceTTrace((new StringBuilder(data))).Length;
  66. }
  67. TempData["DebugAlot"] = count += 10;
  68. return PartialView("LiteralResult","Traced " + count + " Times Length: " + total);
  69. }
  70. public ActionResult About() {
  71. return View();
  72. }
  73. string TraceDiagnostics() {
  74. StringBuilder builder = new StringBuilder();
  75. builder.AppendFormat("<h2>{0}</h2>","Known Colors");
  76.  
  77. int darkest = MyKnownColors.Colors.Min(c => c.AsArgb);
  78. int lightest = MyKnownColors.Colors.Max(c => c.AsArgb);
  79. double? avg = MyKnownColors.Colors.Average(c => c.AsArgb);
  80.  
  81. builder.AppendFormat("<b>Darkest: {0}</b><br/>",darkest);
  82. builder.AppendFormat("<b>Lightest: {0}</b><br/>",lightest);
  83. builder.AppendFormat("<b>Avg: {0}</b><br/>",avg);
  84.  
  85. builder.Append("<ul>");
  86.  
  87.  
  88. Trace.WriteLine("Known Colors");
  89. Trace.WriteLine(MyKnownColors.Id);
  90. Trace.WriteLine(MyKnownColors.Name);
  91.  
  92. var filtered = MyKnownColors.Colors
  93. .Where(c => c.AsArgb < -6063109);
  94.  
  95. foreach(var item in filtered) {
  96.  
  97. string formatted = string.Format("{0} [{1}] [{2}]",item.Name,item.AsArgb,item.AsRbgCss);
  98.  
  99. Trace.WriteLine(formatted);
  100. builder.AppendFormat("<li style='color:{0};'>{1}</li>",item.AsRbgCss,formatted);
  101. }
  102. builder.Append("</ul>");
  103.  
  104. return builder.ToString();
  105. }
  106. string TraceTTrace(StringBuilder builder) {
  107. TraceDisplayFlags flags = TraceDisplayFlags.ShowModifiers |
  108. TraceDisplayFlags.ShowInheritedMembers |
  109. TraceDisplayFlags.ShowNonPublic |
  110. TraceDisplayFlags.ShowFields;
  111.  
  112. TTrace.Debug.SendCaller("TraceTTrace() -> 0",0);
  113. //TTrace.Debug.SendDump("TraceTTrace() -> SendDump test","Unicode",Encoding.Unicode.GetBytes(builder.ToString()),builder.ToString().Length);
  114.  
  115. TraceStack();
  116.  
  117. TTrace.Debug.SendObject("MyKnownColors -> All ",MyKnownColors,flags)
  118. .SendValue("All Colors",MyKnownColors.Colors.Take(10).ToArray());
  119.  
  120. //TTrace.Debug.SendValue("All Colors",MyKnownColors.Colors.ToArray());
  121.  
  122. return "TraceTTrace" + "MyKnownColors -> All";
  123. }
  124. static bool added = false;
  125. void TraceStack() {
  126.  
  127.  
  128. try {
  129.  
  130.  
  131. TTrace.Debug.SendStack("TraceTTrace() -> Stack test",1);
  132. }
  133. catch(Exception error) {
  134.  
  135.  
  136. var lines = error.StackTrace.Split("\r\n".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
  137. var files = lines.Where(l => l.Contains(".cs:line"));
  138. string.Join("|",files.ToArray());
  139.  
  140. Trace.TraceError(error.Message + "\r\n" + error.ToString());
  141.  
  142. TTrace.Error.SendObject(error.Message,error)
  143. .SetFontDetail(0,true)
  144. .Send("Code Files\r\n" + string.Join("|",files.ToArray()))
  145. .Send("Full Stack Trace\r\n" + error.StackTrace)
  146. .SetBookmark(true);
  147. // TTrace.Debug.Send("Impact Italic")
  148. //.SetFontDetail(3,false,true,System.Drawing.Color.BlueViolet.ToArgb(),12,"Impact"); // Col3 (left msg), non bold, Italic , Blue-Violet , font 12 , Impact
  149.  
  150. }
  151.  
  152.  
  153. }
  154. }
  155. }
Advertisement
Add Comment
Please, Sign In to add comment