Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- using System.Diagnostics;
- using System.Drawing;
- namespace Mvc2App.Controllers {
- using Models;
- using System.Text;
- using TraceTool;
- [HandleError]
- public class HomeController:Controller {
- public SamplePOCO MyKnownColors { get; set; }
- public List<SamplePOCO> ListOfModels { get; set; }
- public HomeController() {
- MyKnownColors = new SamplePOCO();
- ListOfModels = new List<SamplePOCO>();
- MyKnownColors.Id = 1;
- MyKnownColors.Name = "Known Colors";
- var names = Enum.GetNames(typeof(KnownColor));
- foreach(string name in names) {
- KnownColor kcolor = (KnownColor)Enum.Parse(typeof(KnownColor),name);
- MyKnownColors.Colors.Add(new MyColor(kcolor));
- }
- MyKnownColors.Colors = MyKnownColors.Colors
- .OrderBy(c => c.AsArgb).ToList();
- }
- public ActionResult Index() {
- TTrace.Debug.EnterMethod("HomeController->Index()");
- if(!added) {
- Trace.Listeners.Add(new TTraceListener());
- TTrace.WinTrace.SetLogFile("c:\\Mvc2App.xml",2);
- added = true;
- }
- ViewData["Message"] = "Trace Prof of Concept";
- string data = TraceDiagnostics();
- ViewData["TraceTTrace"] = TraceTTrace(new StringBuilder(data));
- ViewData["TraceDiagnostics"] = data;
- TTrace.Debug.ExitMethod("HomeController->Index()");
- return View();
- }
- public ActionResult DebugAlot() {
- int count = 10;
- int total = 0;
- if(TempData["DebugAlot"] != null)
- count = (int)TempData["DebugAlot"];
- string data = TraceDiagnostics();
- for(int i = 0;i < count;i++) {
- total += TraceTTrace((new StringBuilder(data))).Length;
- }
- TempData["DebugAlot"] = count += 10;
- return PartialView("LiteralResult","Traced " + count + " Times Length: " + total);
- }
- public ActionResult About() {
- return View();
- }
- string TraceDiagnostics() {
- StringBuilder builder = new StringBuilder();
- builder.AppendFormat("<h2>{0}</h2>","Known Colors");
- int darkest = MyKnownColors.Colors.Min(c => c.AsArgb);
- int lightest = MyKnownColors.Colors.Max(c => c.AsArgb);
- double? avg = MyKnownColors.Colors.Average(c => c.AsArgb);
- builder.AppendFormat("<b>Darkest: {0}</b><br/>",darkest);
- builder.AppendFormat("<b>Lightest: {0}</b><br/>",lightest);
- builder.AppendFormat("<b>Avg: {0}</b><br/>",avg);
- builder.Append("<ul>");
- Trace.WriteLine("Known Colors");
- Trace.WriteLine(MyKnownColors.Id);
- Trace.WriteLine(MyKnownColors.Name);
- var filtered = MyKnownColors.Colors
- .Where(c => c.AsArgb < -6063109);
- foreach(var item in filtered) {
- string formatted = string.Format("{0} [{1}] [{2}]",item.Name,item.AsArgb,item.AsRbgCss);
- Trace.WriteLine(formatted);
- builder.AppendFormat("<li style='color:{0};'>{1}</li>",item.AsRbgCss,formatted);
- }
- builder.Append("</ul>");
- return builder.ToString();
- }
- string TraceTTrace(StringBuilder builder) {
- TraceDisplayFlags flags = TraceDisplayFlags.ShowModifiers |
- TraceDisplayFlags.ShowInheritedMembers |
- TraceDisplayFlags.ShowNonPublic |
- TraceDisplayFlags.ShowFields;
- TTrace.Debug.SendCaller("TraceTTrace() -> 0",0);
- //TTrace.Debug.SendDump("TraceTTrace() -> SendDump test","Unicode",Encoding.Unicode.GetBytes(builder.ToString()),builder.ToString().Length);
- TraceStack();
- TTrace.Debug.SendObject("MyKnownColors -> All ",MyKnownColors,flags)
- .SendValue("All Colors",MyKnownColors.Colors.Take(10).ToArray());
- //TTrace.Debug.SendValue("All Colors",MyKnownColors.Colors.ToArray());
- return "TraceTTrace" + "MyKnownColors -> All";
- }
- static bool added = false;
- void TraceStack() {
- try {
- TTrace.Debug.SendStack("TraceTTrace() -> Stack test",1);
- }
- catch(Exception error) {
- var lines = error.StackTrace.Split("\r\n".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
- var files = lines.Where(l => l.Contains(".cs:line"));
- string.Join("|",files.ToArray());
- Trace.TraceError(error.Message + "\r\n" + error.ToString());
- TTrace.Error.SendObject(error.Message,error)
- .SetFontDetail(0,true)
- .Send("Code Files\r\n" + string.Join("|",files.ToArray()))
- .Send("Full Stack Trace\r\n" + error.StackTrace)
- .SetBookmark(true);
- // TTrace.Debug.Send("Impact Italic")
- //.SetFontDetail(3,false,true,System.Drawing.Color.BlueViolet.ToArgb(),12,"Impact"); // Col3 (left msg), non bold, Italic , Blue-Violet , font 12 , Impact
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment