private IProcResult ExecuteAndGetResult(string procName, object model, ProcArgs args) { IProcLocator locator = this.Context?.Locator ?? new ProcLocator(); IProcEngine engine = this.Context?.Engine ?? new ProcEngine(null); PageDescriptor descriptor = locator.FindPage(procName, this.GetType()); ProcFactory factory = engine.Proc(descriptor, args); return(factory(model)); }
public string Sql <TModel, TResult>(Runnable <TModel, TResult> model) { IProcLocator locator = this.Context?.Locator ?? new ProcLocator(); IProcEngine engine = this.Context?.Engine ?? new ProcEngine(null); PageDescriptor descriptor = locator.FindPage("Query", this.GetType()); ProcArgs args = new ProcArgs(typeof(Runnable <TModel, TResult>), typeof(List <TResult>)); ProcFactory factory = engine.Proc(descriptor, args); return(factory(model).Buffer.ReadToEnd().Text.Trim()); }
public AccessorContext(IProcLocator locator, IProcEngine engine) { this.Locator = locator ?? throw new ArgumentNullException(nameof(locator)); this.Engine = engine ?? throw new ArgumentNullException(nameof(engine)); }