コード例 #1
0
        public void ExecuteSimpleAction(ActionPortalEventArgs appArgs,
                                        Type objType, Type controllerType, string actionName)
        {
            // Open navigation item
            var nav        = new NavigationHelper();
            var controller = Activator.CreateInstance(controllerType) as ViewController;

            appArgs.ShowViewParameters.Controllers.Add(controller);
            nav.OpenNavigationItem(appArgs.Application, appArgs.ObjectSpace,
                                   appArgs.ShowViewParameters, objType);

            // Find action
            var action = (SimpleAction)controller.Actions[actionName];

            if (action == null)
            {
                action = (SimpleAction)controller.Actions
                         .Where(c => c.Caption == actionName)
                         .FirstOrDefault();
            }
            if (action == null)
            {
                throw new UserFriendlyException(string.Format(
                                                    "Action '{0}' does not exist", actionName));
            }
            nav.DoExecuteOnActivated(controller, action);
        }