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); }
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; }