Пример #1
0
        public object CallLambda(object function, dynamic options, dynamic values)
        {
            if (!(function is string functionText))
            {
                throw new ApplicationException($"{nameof(CallLambda)}: {nameof(function)} must be a string");
            }

            LambdaRequestOptions lambdaOptions = ProcessLambdaRequestOptions(options);

            string data   = null;
            var    native = ConvertToNative(values);

            if (native != null)
            {
                data = JsonConvert.SerializeObject(native);
            }

            var response = lambdaService.Invoke(functionText, data);

            if (lambdaOptions.KeepResponseAsString)
            {
                return(response);
            }

            var result = JsonConvert.DeserializeObject <dynamic>(response);

            return(ScriptHelpers.ToScriptValue(result, ScriptContext));
        }
Пример #2
0
        private static LambdaRequestOptions ProcessLambdaRequestOptions(dynamic options)
        {
            var lambdaOptions = new LambdaRequestOptions();

            if (options == null)
            {
                return(lambdaOptions);
            }

            var o = (object)options;
            IDictionary <string, object> convertedValue = o.FromScriptValue() as IDictionary <string, object>;

            if (convertedValue.ContainsKey("KeepResponseAsString"))
            {
                lambdaOptions.KeepResponseAsString = Convert.ToBoolean(convertedValue["KeepResponseAsString"]);
            }

            return(lambdaOptions);
        }