Beispiel #1
0
        private static IResource CloneActionRule(string newName, IResource from)
        {
            #region Preconditions
            IResource res = Core.ResourceStore.FindUniqueResource(FilterManagerProps.RuleResName, "Name", newName);
            if (res != null)
            {
                throw new AmbiguousMatchException("Can not assigned a name which is already in use for a cloned rule.");
            }
            #endregion Preconditions

            IResource[][] conditionGroups;
            IResource[]   exceptions;
            FilterRegistry.CloneConditionTypeLinks(from, out conditionGroups, out exceptions);

            IResourceList actionsList = FMan.GetActions(from);
            IResource[]   actions     = new IResource[actionsList.Count];
            for (int i = 0; i < actionsList.Count; i++)
            {
                actions[i] = FMan.CloneAction(actionsList[i]);
            }

            string[]  formTypes = FilterRegistry.CompoundType(from);
            string    eventName = from.GetStringProp("EventName");
            IResource newRule   = FMan.RegisterRule(eventName, newName, formTypes, conditionGroups, exceptions, actions);
            return(newRule);
        }
Beispiel #2
0
        public void Execute(IActionContext context)
        {
            IResource view = context.SelectedResources[0];

            IResource[][] conditions;
            IResource[]   exceptions;
            FilterRegistry.CloneConditionTypeLinks(view, out conditions, out exceptions);

            string[] types = FilterRegistry.CompoundType(view);
            Core.FilteringFormsManager.ShowEditActionRuleForm(view.GetStringProp(Core.Props.Name), types,
                                                              conditions, exceptions, null);
        }