public void Apply(ControllerModel controller) { if (controller.ControllerType.GetGenericTypeDefinition() == typeof(GenericDynamicModuleController <>)) { var entityType = controller.ControllerType.GenericTypeArguments[0]; controller.ControllerName = DynamicModuleControllerNameDecorator.GetControllerName(entityType); } }
public void PopulateFeature(IEnumerable <ApplicationPart> parts, ControllerFeature feature) { var dynamicModuleGenericController = typeof(GenericDynamicModuleController <>); foreach (var moduleContext in m_moduleContexts) { var typeName = DynamicModuleControllerNameDecorator.GetControllerName(moduleContext.ModuleConfigurationManager.ViewModelType); if (feature.Controllers.All(t => t.Name != typeName)) { feature.Controllers.Add( dynamicModuleGenericController .MakeGenericType(moduleContext.ModuleConfigurationManager.ViewModelType) .GetTypeInfo() ); } } }