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(); } } }
public virtual void Dispose() { if (!IsDisposed) { Invalidate(); Query = null; yamsterCache = null; } }
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); }
public virtual void CopyFrom(YamsterModelQuery source) { this.Title = source.Title; this.FilterNode = YqlNode.CloneIfNotNull(source.FilterNode); }
private YqlCompiler(YamsterModelQuery query) { this.ModelType = query.ModelType; ExecutionContextParameter = Expression.Parameter(typeof(YqlExecutionContext), "context"); }