public virtual bool TryCreate <TIn, TOut>(IQuerySpecification <TIn, TOut> specification, out IQueryTransform <TIn, TOut> transform) { if (_transformFactories.TryGetValue(specification.Name, out var factories)) { foreach (var factory in factories) { if (factory.TryCreate(specification, out transform)) { return(true); } } } transform = null; return(false); }
public virtual bool TryCreate <TIn, TOut>(IQuerySpecification <TIn, TOut> specification, out IQueryTransform <TIn, TOut> transform) { if (specification is SelectQuerySpecification <TIn, TOut> selectSpec) { transform = new SelectQueryTransform <TIn, TOut>(selectSpec.Expression); return(true); } transform = null; return(true); }
public ChainQueryTransform(IQueryPipe <TIn> inputPipe, IQueryPipe <TOut> outputPipe, IQueryTransform <TIn, TOut> transform) { _inputPipe = inputPipe ?? throw new ArgumentNullException(nameof(inputPipe)); _outputPipe = outputPipe ?? throw new ArgumentNullException(nameof(outputPipe)); _transform = transform ?? throw new ArgumentNullException(nameof(transform)); }