protected internal virtual ExtensionToken CreateToken(QueryToken parent) { var info = metas.GetOrAdd(parent, qt => { Expression e = MetadataVisitor.JustVisit(Lambda, MetaExpression.FromToken(qt, SourceType)); MetaExpression?me; if (this.IsProjection) { var mpe = e as MetaProjectorExpression; if (mpe == null) { mpe = MetadataVisitor.AsProjection(e); } me = mpe == null ? null : mpe.Projector as MetaExpression; } else { me = e as MetaExpression; } var result = new ExtensionRouteInfo(); if (me != null && me.Meta is CleanMeta cleanMeta && cleanMeta.PropertyRoutes.Any()) { result.PropertyRoute = cleanMeta.PropertyRoutes.Only(); result.Implementations = me.Meta.Implementations; result.Format = ColumnDescriptionFactory.GetFormat(cleanMeta.PropertyRoutes); result.Unit = ColumnDescriptionFactory.GetUnit(cleanMeta.PropertyRoutes); }
internal static string GetQueryColumnHelp(ColumnDescriptionFactory kvp) { string typeDesc = QueryColumnType(kvp); if (kvp.PropertyRoutes != null) { return(HelpMessage._0IsA1AndShows2.NiceToString(kvp.DisplayName(), typeDesc, kvp.PropertyRoutes.CommaAnd(pr => pr.PropertyRouteType == PropertyRouteType.Root ? TypeLink(pr.RootType) : HelpMessage.TheProperty0.NiceToString(PropertyLink(pr.PropertyRouteType == PropertyRouteType.LiteEntity ? pr.Parent: pr))))); } else { return(HelpMessage._0IsACalculated1.NiceToString(kvp.DisplayName(), typeDesc)); } }
private static string QueryColumnType(ColumnDescriptionFactory kvp) { var cleanType = kvp.Type.CleanType(); if (Reflector.IsIEntity(cleanType)) { return(kvp.Implementations.Value.TypeLinks(cleanType)); } else if (Reflector.IsEmbeddedEntity(kvp.Type)) { return(kvp.Type.NiceName()); } else { return(ValueType(kvp.Type, kvp.Format, kvp.Unit)); } }
public IEnumerable <QueryToken> GetAllTokens(QueryToken parent) { var info = metas.GetOrAdd(parent, qt => { Expression <Func <T, V> > lambda = t => ValueSelector.Evaluate(CollectionSelector.Evaluate(t).SingleOrDefaultEx() !); Expression e = MetadataVisitor.JustVisit(lambda, MetaExpression.FromToken(qt, typeof(T))); var result = new ExtensionRouteInfo(); if (e is MetaExpression me && me.Meta is CleanMeta cm && cm.PropertyRoutes.Any()) { var cleanType = me !.Type.CleanType(); result.PropertyRoute = cm.PropertyRoutes.Only(); result.Implementations = me.Meta.Implementations; result.Format = ColumnDescriptionFactory.GetFormat(cm.PropertyRoutes); result.Unit = ColumnDescriptionFactory.GetUnit(cm.PropertyRoutes); } return(result); });
public QueryColumnHelp(ColumnDescriptionFactory column, string niceName, string info) { this.Column = column; this.NiceName = niceName; this.Info = info; }
private static string QueryColumnType(ColumnDescriptionFactory kvp) { var cleanType = kvp.Type.CleanType(); if (Reflector.IsIEntity(cleanType)) { return kvp.Implementations.Value.TypeLinks(cleanType); } else if (Reflector.IsEmbeddedEntity(kvp.Type)) { return kvp.Type.NiceName(); } else { return ValueType(kvp.Type, kvp.Format, kvp.Unit); } }
internal static string GetQueryColumnHelp(ColumnDescriptionFactory kvp) { string typeDesc = QueryColumnType(kvp); if (kvp.PropertyRoutes != null) return HelpMessage._0IsA1AndShows2.NiceToString(kvp.DisplayName(), typeDesc, kvp.PropertyRoutes.CommaAnd(pr => pr.PropertyRouteType == PropertyRouteType.Root ? TypeLink(pr.RootType) : HelpMessage.TheProperty0.NiceToString(PropertyLink(pr.PropertyRouteType == PropertyRouteType.LiteEntity ? pr.Parent: pr)))); else return HelpMessage._0IsACalculated1.NiceToString(kvp.DisplayName(), typeDesc); }
public static string GetQueryHelp(IDynamicQueryCore dynamicQuery) { ColumnDescriptionFactory cdf = dynamicQuery.EntityColumnFactory(); return(HelpMessage.QueryOf0.NiceToString(cdf.Implementations.Value.TypeLinks(Lite.Extract(cdf.Type)))); }
protected internal virtual ExtensionToken CreateToken(QueryToken parent) { var info = metas.GetOrAdd(parent, qt => { Expression e = MetadataVisitor.JustVisit(Lambda, MetaExpression.FromToken(qt, SourceType)); MetaExpression me; if (this.IsProjection) { var mpe = e as MetaProjectorExpression; if (mpe == null) { mpe = MetadataVisitor.AsProjection(e); } me = mpe == null ? null : mpe.Projector as MetaExpression; } else { me = e as MetaExpression; } var result = new ExtensionRouteInfo(); if (me?.Meta is CleanMeta cm && cm.PropertyRoutes.Any()) { var cleanType = me.Type.CleanType(); result.PropertyRoute = cm.PropertyRoutes.Only(); result.Implementations = me.Meta.Implementations; result.Format = ColumnDescriptionFactory.GetFormat(cm.PropertyRoutes); result.Unit = ColumnDescriptionFactory.GetUnit(cm.PropertyRoutes); } result.IsAllowed = () => (me == null || me.Meta == null) ? null : me.Meta.IsAllowed(); if (ForcePropertyRoute != null) { result.PropertyRoute = ForcePropertyRoute; } if (ForceImplementations != null) { result.Implementations = ForceImplementations; } if (ForceFormat != null) { result.Format = ForceFormat; } if (ForceUnit != null) { result.Unit = ForceUnit; } if (ForceIsAllowed != null) { result.IsAllowed = ForceIsAllowed; } return(result); });
public QueryColumnHelp(ColumnDescriptionFactory column, string niceName, string info) { this.Column = column; this.NiceName = niceName; this.Info = info; }