public Task <TResult[]> HandleAsync <TEntity, TResult>(Expression <Func <TEntity, bool> > filter, Expression <Func <TEntity, TResult> > selector) where TEntity : class { var modifiedWhere = new AddMaybeVisitor().Modify(filter); //return null instead NullRefEx on b=>b.Author.Name if b.Author is null var modifiedSelector = new AddMaybeVisitor().Modify(selector); return(Task.FromResult(_querySource.OfType <TEntity>().Where(modifiedWhere).Select(modifiedSelector).ToArray())); }
public Task <TResult[]> HandleAsync <TEntity, TResult>(Expression <Func <TEntity, bool> > filter, Expression <Func <TEntity, TResult> > selector, ISortable pagingData) where TEntity : class where TResult : class { var modifiedWhere = new AddMaybeVisitor().Modify(filter); var modifiedSelector = new AddMaybeVisitor().Modify(selector); return(Task.FromResult(_querySource.OfType <TEntity>() .Where(modifiedWhere) .Select(modifiedSelector) .ApplyPaging(pagingData) .ToArray())); }