Ejemplo n.º 1
0
        public override object RunAction(DynamicAction objAction, DynamicControllerInfo controller, RestService objService, WebMethod verb,
                                         IDictionary <string, object> arguments)
        {
            var dynController = new DynamicController
            {
                Service        = objService,
                ControllerInfo = controller,
                SelectedAction = objAction
            };

            var objContext = objAction.InitContext(arguments);

            objContext.InitParams(objService.GlobalParameters);
            objContext.InitParams(controller.GlobalParameters);
            objContext.SetVar("Controller", dynController);
            foreach (DynamicParameter parameter in objAction.Parameters)
            {
                object val = null;
                if (parameter.IsOptional && parameter.DefaultValue.Enabled && !arguments.TryGetValue(parameter.Name, out val))
                {
                    objContext.SetVar(parameter.Name, parameter.ResolvedDefaultValue);
                }
            }
            var response = dynController.ProcessInternal(objContext, verb);

            return(response?.EvaluateToReturn(objContext));
        }
        public override IHttpController CreateController(System.Net.Http.HttpRequestMessage request)
        {
            var dynController = new DynamicController {
                Service = _RestService, ControllerInfo = _ControllerInfo
            };

            return(dynController);
        }