public override MvcHtmlString ToHtml(HtmlHelper helper) { var a = new HtmlTag("button").Id(this.Id) .Class("btn btn-default btn-help") .Class(HelpLogic.GetQueryHelp(QueryName).HasEntity ? "hasItems" : null) .Attr("type", "button") .SetInnerText("?"); var query = HelpLogic.GetQueryHelpService(this.QueryName); var jsType = new { QueryName = QueryUtils.GetKey(query.QueryName), Info = query.Info, Columns = query.Columns, }; var result = new HtmlTag("div").Class("btn-group").InnerHtml(a).ToHtml(); result = result.Concat(helper.ScriptCss("~/Help/Content/helpWidget.css")); result = result.Concat(MvcHtmlString.Create("<script>$('#" + this.Id + "').on('mouseup', function(event){ if(event.which == 3) return; " + HelpClient.WidgetModule["searchClick"](JsFunction.This, this.Prefix, jsType, helper.UrlHelper().Action((HelpController c) => c.ComplexColumns())).ToString() + " })</script>")); return(result); }
public TypeHelpEntity GetEntity() { var result = new TypeHelpEntity { Culture = this.Culture.ToCultureInfoEntity(), Type = this.Type.ToTypeEntity(), Description = DBEntity?.Description, Info = Info }; result.Properties.AddRange( from pre in PropertyRouteLogic.RetrieveOrGenerateProperties(this.Type.ToTypeEntity()) let pr = pre.ToPropertyRoute() where !(pr.PropertyInfo != null && pr.PropertyInfo.SetMethod == null && ExpressionCleaner.HasExpansions(pr.PropertyInfo.DeclaringType !, pr.PropertyInfo)) let ph = Properties.GetOrThrow(pre.ToPropertyRoute()) where ph.IsAllowed() == null select new PropertyRouteHelpEmbedded { Property = pre, Info = ph.Info, Description = ph.UserDescription, }); result.Operations.AddRange( from oh in Operations.Values where oh.IsAllowed() == null select new OperationHelpEmbedded { Operation = oh.OperationSymbol, Info = oh.Info, Description = oh.UserDescription, }); result.Queries.AddRange( from qn in QueryLogic.Queries.GetTypeQueries(this.Type).Keys let qh = HelpLogic.GetQueryHelp(qn) where qh.IsAllowed() == null select qh.GetEntity()); if (DBEntity != null) { result.SetId(DBEntity.Id); result.SetIsNew(DBEntity.IsNew); result.Ticks = DBEntity.Ticks; } return(result); }