Пример #1
0
            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);
            }
Пример #2
0
    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);
    }