public TResult MapResult <TResult>(object?source, Expression expression) { if (source != null && !(source is TResult) && source.IsCollection(out var enumerable)) { var elementType = TypeHelper.GetElementType(enumerable.GetType()) ?? throw new RemoteLinqException($"Failed to get element type of {enumerable.GetType()}."); if (typeof(TResult).IsAssignableFrom(elementType) && expression is MethodCallExpression methodCallExpression) { return(DynamicResultMapper.MapToSingleResult <TResult>(elementType, enumerable, methodCallExpression)); } } return((TResult)source); }
public TResult MapResult <TResult>(object source, Expression expression) { if (source is IEnumerable enumerable) { var elementType = TypeHelper.GetElementType(enumerable.GetType()); if (typeof(TResult).IsAssignableFrom(elementType) && expression is MethodCallExpression methodCallExpression) { return(DynamicResultMapper.MapToSingleResult <TResult>(elementType, enumerable, methodCallExpression)); } } return((TResult)source); }
/// <inheritdoc/> public TResult?MapResult <TResult>(object?source, Expression expression) { if (source is not null && source is not TResult && source.IsCollection(out var enumerable)) { var elementType = TypeHelper.GetElementType(enumerable.GetType()); if (typeof(TResult).IsAssignableFrom(elementType) && expression is MethodCallExpression methodCallExpression) { return(DynamicResultMapper.MapToSingleResult <TResult>(elementType, enumerable, methodCallExpression)); } } return(source is TResult result ? result : default);
public Task <TResult> MapResultAsync <TResult>(IEnumerable <DynamicObject> source, Expression expression) => Task.Run(() => DynamicResultMapper.MapToType <TResult>(source, _mapper, expression));
public Task <TResult> MapResultAsync <TResult>(IEnumerable <DynamicObject> source, Expression expression) { return(Task.Factory.StartNew(() => DynamicResultMapper.MapToType <TResult>(source, _mapper, expression))); }