Пример #1
0
    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);
    }
Пример #2
0
        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);
        }
Пример #3
0
 public FunctionDefinition(ExpressionFunction.FunctionCall functionCall, FunctionMapping functionMapping, AdapterVersion adapterVersion = AdapterVersion.Any)
 {
     FunctionCall    = functionCall;
     FunctionMapping = functionMapping;
     AdapterVersion  = adapterVersion;
 }
Пример #4
0
 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);
 }
Пример #5
0
 protected abstract bool CanMap(string functionName, int argumentCount, ODataExpression functionCaller, AdapterVersion adapterVersion = AdapterVersion.Any);
Пример #6
0
 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;
 }
 public FunctionDefinition(ExpressionFunction.FunctionCall functionCall, FunctionMapping functionMapping, AdapterVersion adapterVersion = AdapterVersion.Any)
 {
     FunctionCall = functionCall;
     FunctionMapping = functionMapping;
     AdapterVersion = adapterVersion;
 }