/// <summary> /// Create the html required to make a link for a callstack line for a Bugg. /// </summary> /// <param name="Helper">The Url helper object.</param> /// <param name="CallStack">A line of callstack to make a link for.</param> /// <param name="Model">The view model for the current page.</param> /// <returns>A string suitable for MVC to render.</returns> public static MvcHtmlString CallStackSearchLink( this UrlHelper Helper, string CallStack, BuggsViewModel Model ) { StringBuilder Result = new StringBuilder(); TagBuilder Tag = new TagBuilder( "a" ); string URL = Helper.Action( "Index", new { controller = "Buggs", SortTerm = Model.Term, SortOrder = Model.Order, UserGroup = Model.UserGroup, SearchQuery = CallStack, DateFrom = Model.DateFrom, DateTo = Model.DateTo } ); Tag.MergeAttribute( "href", URL ); Tag.InnerHtml = CallStack; Result.AppendLine( Tag.ToString() ); return MvcHtmlString.Create( Result.ToString() ); }
/// <summary> /// Create the html required to create the links for table headers to control the sorting of Buggs. /// </summary> /// <param name="Helper">The Url helper object.</param> /// <param name="HeaderName">The table column header name.</param> /// <param name="SortTerm">The sort term to use when sorting by this column.</param> /// <param name="Model">The view model for the current page.</param> /// <returns>A string suitable for MVC to render.</returns> public static MvcHtmlString TableHeader( this UrlHelper Helper, string HeaderName, string SortTerm, BuggsViewModel Model ) { StringBuilder Result = new StringBuilder(); TagBuilder Tag = new TagBuilder( "a" ); // Construct an <a> Tag string URL = Helper.Action( "Index", new { controller = "Buggs", Page = Model.PagingInfo.CurrentPage, SortTerm = SortTerm, PreviousOrder = Model.Order, PreviousTerm = Model.Term, UserGroup = Model.UserGroup, SearchQuery = Model.Query, DateFrom = Model.DateFrom, DateTo = Model.DateTo } ); Tag.MergeAttribute( "href", URL ); string SortArrow = ""; if( Model.Term == SortTerm ) { if( Model.Order == "Descending" ) { SortArrow = "<img border=0 src='../../Content/Images/SortDescending.png' />"; } else { SortArrow = "<img border=0 src='../../Content/Images/SortAscending.png' />"; } } else { SortArrow = "<img border=0 src='../../Content/Images/SortPlaceHolder.png' />"; } Tag.InnerHtml = "<span>" + HeaderName + " " + SortArrow + "</span>"; Result.AppendLine( Tag.ToString() ); return MvcHtmlString.Create( Result.ToString() ); }
/// <summary> /// Create the html required to change the current user group to filter Buggs by. /// </summary> /// <param name="Helper">The Url helper object.</param> /// <param name="UserGroup">The user group to generate a link for.</param> /// <param name="Model">The view model for the current page.</param> /// <returns>A string suitable for MVC to render.</returns> public static MvcHtmlString UserGroupLink( this UrlHelper Helper, string UserGroup, BuggsViewModel Model ) { StringBuilder Result = new StringBuilder(); TagBuilder Tag = new TagBuilder( "a" ); string URL = Helper.Action( "Index", new { controller = "Buggs", SortTerm = Model.SortTerm, SortOrder = Model.SortOrder, UserGroup = UserGroup, SearchQuery = Model.SearchQuery, DateFrom = Model.DateFrom, DateTo = Model.DateTo, BuildVersion = Model.BuildVersion, CrashType = Model.CrashType, } ); Tag.MergeAttribute( "href", URL ); Tag.InnerHtml = UserGroup; Result.AppendLine( Tag.ToString() ); return MvcHtmlString.Create( Result.ToString() ); }