Beispiel #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 DynamicHttpActionDescriptor(RestService service, DynamicControllerInfo controller, DynamicAction objMethod, ReflectedHttpActionDescriptor originalDescriptor)
     : base(originalDescriptor.ControllerDescriptor, originalDescriptor.MethodInfo)
 {
     _Service            = service;
     _Controller         = controller;
     _DynamicMethod      = objMethod;
     _OriginalDescriptor = originalDescriptor;
     _Parameters         = InitializeParameterDescriptors();
 }
        public static IEnumerable <string> GetSampleRoutes(string basePath, DynamicControllerInfo controller)
        {
            var          toReturn    = new List <string>();
            IApiExplorer apiExplorer = GetConfiguration().Services.GetApiExplorer();

            foreach (ApiDescription api in apiExplorer.ApiDescriptions)
            {
                if (DotNetNuke.Web.Api.RouteExtensions.GetName(api.Route).StartsWith(PortalKeeperContext <SimpleEngineEvent> .MODULE_NAME, StringComparison.OrdinalIgnoreCase) &&
                    api.ActionDescriptor.ControllerDescriptor.ControllerName == controller.Name)
                {
                    var routeName = DotNetNuke.Web.Api.RouteExtensions.GetName(api.Route);
                    if (routeName == null)
                    {
                        routeName = "Unknown Route Name";
                    }
                    var strParams = new StringBuilder();
                    if (api.ParameterDescriptions != null)
                    {
                        foreach (ApiParameterDescription parameterDescription in api.ParameterDescriptions)
                        {
                            if (parameterDescription.ParameterDescriptor?.ParameterType != null)
                            {
                                strParams.Append(string.Format("[{2}] {0} {1}, ",
                                                               ReflectionHelper.GetSimpleTypeName(
                                                                   parameterDescription.ParameterDescriptor.ParameterType),
                                                               parameterDescription.Name, parameterDescription.Source));
                            }
                        }
                    }
                    toReturn.Add(string.Format("{0} : {3} : {4} : {1}({2})"
                                               , routeName
                                               , api.ActionDescriptor.ActionName
                                               , strParams.ToString().Trim().Trim(',')
                                               , api.HttpMethod.ToString()
                                               , basePath + "/" + api.RelativePath)
                                 );
                }
            }
            return(toReturn);
        }
Beispiel #4
0
 public override System.Collections.Generic.IEnumerable <string> GetSampleRoutes(string basePath, DynamicControllerInfo controller)
 {
     return(WebApiConfig.GetSampleRoutes(basePath, controller));
 }
 public DynamicControllerDescriptor(HttpConfiguration configuration, DynamicControllerInfo objControllerInfo, RestService objService)
     : base(configuration, objControllerInfo.Name, typeof(DynamicController))
 {
     _ControllerInfo = objControllerInfo;
     _RestService    = objService;
 }