Ejemplo n.º 1
0
        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);
                }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        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));
            }
        }
Ejemplo n.º 4
0
    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);
        });
Ejemplo n.º 5
0
 public QueryColumnHelp(ColumnDescriptionFactory column, string niceName, string info)
 {
     this.Column = column;
     this.NiceName = niceName;
     this.Info = info;
 }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        public static string GetQueryHelp(IDynamicQueryCore dynamicQuery)
        {
            ColumnDescriptionFactory cdf = dynamicQuery.EntityColumnFactory();

            return(HelpMessage.QueryOf0.NiceToString(cdf.Implementations.Value.TypeLinks(Lite.Extract(cdf.Type))));
        }
Ejemplo n.º 9
0
        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);
            });
Ejemplo n.º 10
0
 public QueryColumnHelp(ColumnDescriptionFactory column, string niceName, string info)
 {
     this.Column   = column;
     this.NiceName = niceName;
     this.Info     = info;
 }