public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; var md = new Markdown(); var data = context.Request.Form["data"]; context.Response.Write(md.Transform(data,true)); }
public void Populate(string linkUrl) { if(TicketToDisplay != null) { TicketAttachmentsDataSource.WhereParameters["TicketId"].DefaultValue = TicketToDisplay.TicketId.ToString(); AttachmentsRepeater.DataSourceID = "TicketAttachmentsDataSource"; AttachmentsRepeater.DataBind(); TicketId.Text = TicketToDisplay.TicketId.ToString(); TicketId.NavigateUrl = linkUrl; TicketTitle.Text = TicketToDisplay.Title; TicketTitle.NavigateUrl = linkUrl; if(TicketToDisplay.IsHtml) { Details.Text = TicketToDisplay.Details; } else { var md = new Markdown(); Details.Text = md.Transform(TicketToDisplay.Details, true); } Category.Text = TicketToDisplay.Category; //Category.NavigateUrl = string.Format("~/TicketCenter.aspx?View=tagsandcategories&Category={0}", TicketToDisplay.Category); TicketType.Text = TicketToDisplay.Type; TicketType.NavigateUrl = linkUrl; CreatedBy.Text = SecurityManager.GetUserDisplayName(TicketToDisplay.CreatedBy); CreatedDate.Text = TicketToDisplay.CreatedDate.ToString("g"); Owner.Text = SecurityManager.GetUserDisplayName(TicketToDisplay.Owner); AssignedTo.Text = SecurityManager.GetUserDisplayName(TicketToDisplay.AssignedTo); //AssignedTo.NavigateUrl = string.Format("~/TicketCenter.aspx?View=assigned&User={0}", TicketToDisplay.AssignedTo); CurrentStatus.Text = TicketToDisplay.CurrentStatus; //CurrentStatus.NavigateUrl = string.Format("~/TicketCenter.aspx?View=status&Status={0}", TicketToDisplay.CurrentStatus.Replace(" ", string.Empty).ToLowerInvariant()); CurrentStatusBy.Text = SecurityManager.GetUserDisplayName(TicketToDisplay.CurrentStatusSetBy); CurrentStatusDate.Text = TicketToDisplay.CurrentStatusDate.ToString("g"); LastUpdateBy.Text = SecurityManager.GetUserDisplayName(TicketToDisplay.LastUpdateBy); LastUpdateDate.Text = TicketToDisplay.LastUpdateDate.ToString("g"); Priority.Text = TicketToDisplay.Priority; AffectsCustomer.Text = (TicketToDisplay.AffectsCustomer) ? "Yes" : "No"; PublishedToKb.Text = (TicketToDisplay.PublishedToKb) ? "Yes" : "No"; var Tags = from t in TicketToDisplay.TicketTags select new { //Url = string.Format("~/TicketCenter.aspx?View=tagsandcategories&TagName={0}", t.TagName), TagName = t.TagName }; TagRepeater.DataSource = Tags; TagRepeater.DataBind(); CommentLogRepeater.DataSource = TicketToDisplay.TicketComments.OrderByDescending(tc => tc.CommentedDate); CommentLogRepeater.DataBind(); } }
public static string GetHTMLBody(Ticket ticket, string url, string userToNotify, int minCommentId) { string viewTicket = string.Format("ViewTicket.aspx?id={0}", ticket.TicketId.ToString()); url = url.Replace("NewTicket", viewTicket); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(GetStyle()); #region Start body stringBuilder.Append(@" <TABLE style=""WIDTH: 100%""> <TBODY> <TR> <TD style=""VERTICAL-ALIGN: top; WIDTH: 75%""> <DIV class=Block>"); #endregion //add url {0} and title {1} placeholders #region one stringBuilder.Append(@" <DIV class=BlockHeader> <A id=TicketType href=""{0}"">{16}</A> : <A id=TicketTitle href=""{0}"">{1}</A> </DIV> <DIV class=BlockBody style=""HEIGHT: 180px""> <SPAN id=Details>{17}</SPAN> </DIV> </DIV> </TD> "); #endregion //add Ticket number (ticketid) {2} #region two stringBuilder.Append(@" <TD style=""VERTICAL-ALIGN: top; WIDTH: 25%""> <DIV class=Block> <DIV class=BlockHeader>Ticket ID: <A id=TicketId href=""{0}"">{2}</A> </DIV>"); #endregion //add status {3} and priority {4} and category {5}, owner {6), assigned to {7} //affects customer {8} and published to kb {9} #region three stringBuilder.Append(@" <DIV class=BlockBody style=""WHITE-SPACE: nowrap; HEIGHT: 203px""> <TABLE> <TBODY> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Status: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=CurrentStatus>{3}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Priority: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=Priority>{4}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Category: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=Category>{5}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Owned by: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=Owner>{6}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Assigned to: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <A id=AssignedTo>{7}</A> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Affects Customer(s): </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=AffectsCustomer>{8}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Published to KB: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=PublishedToKb>{9}</SPAN> </TD> </TR> "); #endregion //add tags #region tags stringBuilder.Append(@" <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Tags: </TD> "); string tagHtml = String.Format(@" <TD style=""VERTICAL-ALIGN: top""> <SPAN id=TagRepeater_ct100_TicketTag>{0}</SPAN> </TD> </TR> ", ticket.TagList); stringBuilder.Append(tagHtml); #endregion //add Created By {10}, created on {11}, current status by {12}, //current status on {13}, last update by {14}, and last update on {15} #region four stringBuilder.Append(@" <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Created by: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=CreatedBy>{10}</SPAN> on: <SPAN id=CreatedDate>{11}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Status set by: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=CurrentStatusBy>{12}</SPAN> on: <SPAN id=CurrentStatusDate>{13}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Updated by: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=LastUpdateBy>{14}</SPAN> on: <SPAN id=LastUpdateDate>{15}</SPAN> </TD> </TR> </TBODY> </TABLE> </DIV> </DIV> </TD> </TR> "); #endregion stringBuilder.Append(GetHTMLAttachments(ticket)); stringBuilder.Append(GetHTMLComments(ticket, userToNotify, minCommentId)); string body = stringBuilder.ToString(); var md = new Markdown(); body = String.Format(body, //base string url, // {0} ticket.Title, // {1} ticket.TicketId.ToString(), // {2} ticket.CurrentStatus, // {3} ticket.Priority, // {4} ticket.Category, // {5} SecurityManager.GetUserDisplayName(ticket.Owner), // {6} SecurityManager.GetUserDisplayName(ticket.AssignedTo), // {7} BoolToYesNo(ticket.AffectsCustomer), // {8} BoolToYesNo(ticket.PublishedToKb), // {9} SecurityManager.GetUserDisplayName(ticket.CreatedBy), // {10} ticket.CreatedDate.ToString("g"), // {11} SecurityManager.GetUserDisplayName(ticket.CurrentStatusSetBy), // {12} ticket.CurrentStatusDate.ToString("g"), // {13} SecurityManager.GetUserDisplayName(ticket.LastUpdateBy), // {14} ticket.LastUpdateDate.ToString("g"), // {15} ticket.Type, // {16} ((!ticket.IsHtml) ? md.Transform(ticket.Details, true) : ticket.Details) // {17} ); body = string.Format("{0}{1}{2}", "<html><head></head><body>", body, "</body></html>" ); return(body); }
public static string GetHTMLBody(Ticket ticket, string url, string userToNotify, int minCommentId) { string viewTicket = string.Format("ViewTicket.aspx?id={0}", ticket.TicketId.ToString()); url = url.Replace("NewTicket", viewTicket); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(GetStyle()); #region Start body stringBuilder.Append(@" <TABLE style=""WIDTH: 100%""> <TBODY> <TR> <TD style=""VERTICAL-ALIGN: top; WIDTH: 75%""> <DIV class=Block>"); #endregion //add url {0} and title {1} placeholders #region one stringBuilder.Append(@" <DIV class=BlockHeader> <A id=TicketType href=""{0}"">{16}</A> : <A id=TicketTitle href=""{0}"">{1}</A> </DIV> <DIV class=BlockBody style=""HEIGHT: 180px""> <SPAN id=Details>{17}</SPAN> </DIV> </DIV> </TD> "); #endregion //add Ticket number (ticketid) {2} #region two stringBuilder.Append(@" <TD style=""VERTICAL-ALIGN: top; WIDTH: 25%""> <DIV class=Block> <DIV class=BlockHeader>Ticket ID: <A id=TicketId href=""{0}"">{2}</A> </DIV>"); #endregion //add status {3} and priority {4} and category {5}, owner {6), assigned to {7} //affects customer {8} and published to kb {9} #region three stringBuilder.Append(@" <DIV class=BlockBody style=""WHITE-SPACE: nowrap; HEIGHT: 203px""> <TABLE> <TBODY> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Status: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=CurrentStatus>{3}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Priority: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=Priority>{4}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Category: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=Category>{5}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Owned by: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=Owner>{6}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Assigned to: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <A id=AssignedTo>{7}</A> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Affects Customer(s): </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=AffectsCustomer>{8}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Published to KB: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=PublishedToKb>{9}</SPAN> </TD> </TR> "); #endregion //add tags #region tags stringBuilder.Append(@" <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Tags: </TD> "); string tagHtml = String.Format(@" <TD style=""VERTICAL-ALIGN: top""> <SPAN id=TagRepeater_ct100_TicketTag>{0}</SPAN> </TD> </TR> ", ticket.TagList); stringBuilder.Append(tagHtml); #endregion //add Created By {10}, created on {11}, current status by {12}, //current status on {13}, last update by {14}, and last update on {15} #region four stringBuilder.Append(@" <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Created by: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=CreatedBy>{10}</SPAN> on: <SPAN id=CreatedDate>{11}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Status set by: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=CurrentStatusBy>{12}</SPAN> on: <SPAN id=CurrentStatusDate>{13}</SPAN> </TD> </TR> <TR> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap; TEXT-ALIGN: right"">Updated by: </TD> <TD style=""VERTICAL-ALIGN: top; WHITE-SPACE: nowrap""> <SPAN id=LastUpdateBy>{14}</SPAN> on: <SPAN id=LastUpdateDate>{15}</SPAN> </TD> </TR> </TBODY> </TABLE> </DIV> </DIV> </TD> </TR> "); #endregion stringBuilder.Append(GetHTMLAttachments(ticket)); stringBuilder.Append(GetHTMLComments(ticket, userToNotify, minCommentId)); string body = stringBuilder.ToString(); var md = new Markdown(); body = String.Format(body, //base string url, // {0} ticket.Title, // {1} ticket.TicketId.ToString(), // {2} ticket.CurrentStatus, // {3} ticket.Priority, // {4} ticket.Category, // {5} SecurityManager.GetUserDisplayName(ticket.Owner), // {6} SecurityManager.GetUserDisplayName(ticket.AssignedTo), // {7} BoolToYesNo(ticket.AffectsCustomer), // {8} BoolToYesNo(ticket.PublishedToKb), // {9} SecurityManager.GetUserDisplayName(ticket.CreatedBy), // {10} ticket.CreatedDate.ToString("g"), // {11} SecurityManager.GetUserDisplayName(ticket.CurrentStatusSetBy), // {12} ticket.CurrentStatusDate.ToString("g"), // {13} SecurityManager.GetUserDisplayName(ticket.LastUpdateBy), // {14} ticket.LastUpdateDate.ToString("g"), // {15} ticket.Type, // {16} ((!ticket.IsHtml) ? md.Transform(ticket.Details, true) : ticket.Details) // {17} ); body = string.Format("{0}{1}{2}", "<html><head></head><body>", body, "</body></html>" ); return body; }
private void PopulateDisplay() { if (TicketToDisplay != null) { DisplayActivityButtons(); TicketId.Text = TicketToDisplay.TicketId.ToString(); TicketTitle.Text = TicketToDisplay.Title; if (TicketToDisplay.IsHtml) { Details.Text = TicketToDisplay.Details; } else { var md = new Markdown(); Details.Text = md.Transform(TicketToDisplay.Details,true); } Category.Text = TicketToDisplay.Category; Category.NavigateUrl = string.Format("~/TicketSearch.aspx?cat={0}", Page.Server.UrlEncode(TicketToDisplay.Category)); TicketType.Text = TicketToDisplay.Type; CreatedBy.Text = SecurityManager.GetUserDisplayName(TicketToDisplay.CreatedBy); CreatedDate.Text = TicketToDisplay.CreatedDate.ToString("g"); Owner.Text = SecurityManager.GetUserDisplayName(TicketToDisplay.Owner); if (!string.IsNullOrEmpty(TicketToDisplay.Owner)) { Owner.NavigateUrl = string.Format("~/TicketSearch.aspx?owner={0}", Page.Server.UrlEncode(TicketToDisplay.Owner)); } AssignedTo.Text = SecurityManager.GetUserDisplayName(TicketToDisplay.AssignedTo); if (!string.IsNullOrEmpty(TicketToDisplay.AssignedTo)) { AssignedTo.NavigateUrl = string.Format("~/TicketSearch.aspx?assign={0}", Page.Server.UrlEncode(TicketToDisplay.AssignedTo)); } CurrentStatus.Text = TicketToDisplay.CurrentStatus; CurrentStatus.NavigateUrl = string.Format("~/TicketSearch.aspx?status={0}", Page.Server.UrlEncode(TicketToDisplay.CurrentStatus)); CurrentStatusBy.Text = SecurityManager.GetUserDisplayName(TicketToDisplay.CurrentStatusSetBy); CurrentStatusDate.Text = TicketToDisplay.CurrentStatusDate.ToString("g"); LastUpdateBy.Text = SecurityManager.GetUserDisplayName(TicketToDisplay.LastUpdateBy); LastUpdateDate.Text = TicketToDisplay.LastUpdateDate.ToString("g"); Priority.Text = TicketToDisplay.Priority; if (!string.IsNullOrEmpty(TicketToDisplay.Priority)) { Priority.NavigateUrl = string.Format("~/TicketSearch.aspx?priority={0}", Page.Server.UrlEncode(TicketToDisplay.Priority)); ; } AffectsCustomer.Text = (TicketToDisplay.AffectsCustomer) ? "Yes" : "No"; TicketAttachmentsControl.Refresh(); var Tags = from t in TicketToDisplay.TicketTags select new { Url = string.Format("~/TicketSearch.aspx?tag={0}", Page.Server.UrlEncode(t.TagName)), TagName = t.TagName }; TagRepeater.DataSource = Tags; TagRepeater.DataBind(); CommentLogRepeater.DataSource = TicketToDisplay.TicketComments.OrderByDescending(tc => tc.CommentedDate); CommentLogRepeater.DataBind(); } }