public static bool TryGetFunctionMapping( string functionName, int argumentCount, AdapterVersion adapterVersion, out FunctionMapping?functionMapping) { functionMapping = null; var function = DefinedFunctions.SingleOrDefault(x => x.FunctionCall.Equals(new ExpressionFunction.FunctionCall(functionName, argumentCount)) && (x.AdapterVersion & adapterVersion) == adapterVersion); if (function != null) { functionMapping = function.FunctionMapping; } return(function != null); }
private static FunctionDefinition CreateFunctionDefinition(string functionName, int argumentCount, string mappedFunctionName, Func <FunctionDefinition, Func <string, string, IEnumerable <object>, ODataExpression> > mapper, AdapterVersion adapterVersion = AdapterVersion.Any) { var functionCall = new ExpressionFunction.FunctionCall(functionName, argumentCount); var functionMapping = new FunctionMapping(mappedFunctionName); var function = new FunctionDefinition(functionCall, functionMapping, adapterVersion); functionMapping.FunctionMapper = mapper(function); return(function); }
public FunctionDefinition(ExpressionFunction.FunctionCall functionCall, FunctionMapping functionMapping, AdapterVersion adapterVersion = AdapterVersion.Any) { FunctionCall = functionCall; FunctionMapping = functionMapping; AdapterVersion = adapterVersion; }
protected override bool CanMap(string functionName, int argumentCount, ODataExpression functionCaller, AdapterVersion adapterVersion = AdapterVersion.Any) { return(functionName == nameof(Enumerable.Contains) && argumentCount == 1 && functionCaller.Value != null && functionCaller.Value.GetType() != typeof(string) && IsInstanceOfType(typeof(IEnumerable), functionCaller.Value) && adapterVersion == AdapterVersion.V4); }
protected abstract bool CanMap(string functionName, int argumentCount, ODataExpression functionCaller, AdapterVersion adapterVersion = AdapterVersion.Any);
public static bool TryGetOperatorMapping(ODataExpression functionCaller, ExpressionFunction function, AdapterVersion adapterVersion, out FunctionToOperatorMapping operatorMapping) { operatorMapping = DefinedMappings.SingleOrDefault(x => x.CanMap(function.FunctionName, function.Arguments.Count, functionCaller, adapterVersion)); return(operatorMapping != null); }
public static bool TryGetFunctionMapping(string functionName, int argumentCount, AdapterVersion adapterVersion, out FunctionMapping functionMapping) { functionMapping = null; var function = DefinedFunctions.SingleOrDefault(x => x.FunctionCall.Equals(new ExpressionFunction.FunctionCall(functionName, argumentCount)) && (x.AdapterVersion & adapterVersion) == adapterVersion); if (function != null) { functionMapping = function.FunctionMapping; } return function != null; }
private static FunctionDefinition CreateFunctionDefinition(string functionName, int argumentCount, string mappedFunctionName, Func<FunctionDefinition, Func<string, string, IEnumerable<object>, ODataExpression>> mapper, AdapterVersion adapterVersion = AdapterVersion.Any) { var functionCall = new ExpressionFunction.FunctionCall(functionName, argumentCount); var functionMapping = new FunctionMapping(mappedFunctionName); var function = new FunctionDefinition(functionCall, functionMapping, adapterVersion); functionMapping.FunctionMapper = mapper(function); return function; }