Exemplo n.º 1
0
        public void LoadQuery(YamsterModelQuery query)
        {
            RequireNotDisposed();

            bool succeeded = false;

            try
            {
                Query        = query;
                CompiledFunc = null;

                if (query != null)
                {
                    CompiledFunc = YqlCompiler.Compile(query);
                }

                Invalidate();
                succeeded = true;
            }
            finally
            {
                if (!succeeded)
                {
                    Query        = null;
                    CompiledFunc = null;

                    Invalidate();
                }
            }
        }
Exemplo n.º 2
0
        public virtual void Dispose()
        {
            if (!IsDisposed)
            {
                Invalidate();

                Query        = null;
                yamsterCache = null;
            }
        }
Exemplo n.º 3
0
        internal static Func <YqlExecutionContext, bool> Compile(YamsterModelQuery query)
        {
            var compiler      = new YqlCompiler(query);
            var compiledQuery = compiler.CoerceTo(compiler.CompileNode(query.FilterNode), typeof(bool),
                                                  "Expecting a boolean expression");

            var filterExpression = Expression.Lambda <Func <YqlExecutionContext, bool> >(
                compiledQuery.Expression, compiler.ExecutionContextParameter);

            var compiledFunc = filterExpression.Compile();

            return(compiledFunc);
        }
Exemplo n.º 4
0
 public virtual void CopyFrom(YamsterModelQuery source)
 {
     this.Title      = source.Title;
     this.FilterNode = YqlNode.CloneIfNotNull(source.FilterNode);
 }
Exemplo n.º 5
0
 private YqlCompiler(YamsterModelQuery query)
 {
     this.ModelType            = query.ModelType;
     ExecutionContextParameter = Expression.Parameter(typeof(YqlExecutionContext), "context");
 }