コード例 #1
0
        public IBaseAction CreateActionItem(IGroupAction a, ObservableCollection <IBaseAction> p)
        {
            IBaseAction action = null;

            if (a is GroupAction)
            {
                action = new ActionItemModel((GroupAction)a)
                {
                    Parent = p
                }
            }
            ;
            else if (a is GroupActionGroup)
            {
                action = new ActionSubmenuItemModel((GroupActionGroup)a)
                {
                    Parent = p
                }
            }
            ;
            else if (a is GroupActionSeparator)
            {
                action = new ActionSeparatorItemModel((GroupActionSeparator)a)
                {
                    Parent = p
                }
            }
            ;
            return(action);
        }
コード例 #2
0
ファイル: ActionEngine.cs プロジェクト: Radomiej/FunkyApp
        public void HandleDoActionEvent(DoActionEvent doActionEvent)
        {
            IBaseAction action = doActionEvent.ActionToDo;

            _actions.Add(action);
            action.DoAction();
        }
コード例 #3
0
        public static OutboundRule ToOutboundRule(this OutboundRuleItem outboundRuleItem)
        {
            if (outboundRuleItem == null)
            {
                return(null);
            }

            var conditionItems = GetBaseConditionItems(outboundRuleItem);

            var outboundRule = new OutboundRule
            {
                ItemId = outboundRuleItem.ID.Guid,
                Name   = outboundRuleItem.Name
            };

            SetBaseRule(outboundRuleItem.BaseRuleItem, outboundRule);

            SetOutboundMatch(outboundRuleItem.OutboundMatchItem, outboundRule);

            GetPrecondition(outboundRuleItem.OutboundPreconditionItem, outboundRule);

            if (string.IsNullOrEmpty(outboundRuleItem.BaseRuleItem.BaseMatchItem.MatchPatternItem.Pattern.Value))
            {
                Log.Warn(logObject, outboundRuleItem.Database, "No pattern set on rule with ItemID: {0}", outboundRuleItem.ID);

                return(null);
            }

            if (outboundRuleItem.Action == null)
            {
                Log.Warn(logObject, outboundRuleItem.Database, "No action set on rule with ItemID: {0}", outboundRuleItem.ID);

                return(null);
            }

            var         baseActionItem = outboundRuleItem.Action.TargetItem;
            IBaseAction baseAction     = null;

            if (baseActionItem != null)
            {
                var baseActionItemTemplateId = baseActionItem.TemplateID.ToString();

                if (baseActionItemTemplateId.Equals(OutboundRewriteItem.TemplateId, StringComparison.InvariantCultureIgnoreCase))
                {
                    baseAction = new OutboundRewriteItem(baseActionItem).ToOutboundRewriteAction();
                }
            }
            outboundRule.Action = baseAction;

            if (conditionItems != null)
            {
                SetConditions(conditionItems, outboundRule);
            }

            return(outboundRule);
        }
コード例 #4
0
ファイル: ActionEngine.cs プロジェクト: Radomiej/FunkyApp
        public void HandleUndoActionEvent(UndoActionEvent undoActionEvent)
        {
            if (_actions.Count == 0)
            {
                return;
            }

            IBaseAction action = _actions[_actions.Count - 1];

            action.UndoAction();
            _actions.Remove(action);
        }
コード例 #5
0
        public ProcessInboundRulesResult(Uri originalUri, List <InboundRuleResult> processedResults)
        {
            _originalUri      = originalUri;
            _processedResults = processedResults;
            var lastMatchedResult = _processedResults.LastOrDefault(r => r.RuleMatched);

            if (lastMatchedResult != null)
            {
                _rewrittenUri = lastMatchedResult.RewrittenUri;
                _finalAction  = lastMatchedResult.ResultAction;
                _itemId       = lastMatchedResult.ItemId;
            }
        }
コード例 #6
0
        public ProcessInboundRulesResult(Uri originalUri, List<InboundRuleResult> processedResults)
        {
            _originalUri = originalUri;
            _processedResults = processedResults;
            var lastMatchedResult = _processedResults.FirstOrDefault(r => r.RuleMatched);

            if (lastMatchedResult != null)
            {
                _rewrittenUri = lastMatchedResult.RewrittenUri;
                _finalAction = lastMatchedResult.ResultAction;
                _itemId = lastMatchedResult.ItemId;
            }
        }
コード例 #7
0
        public IBaseAction CopyActionItems(IBaseAction a)
        {
            IBaseAction action = null;

            if (a is ActionItemModel)
            {
                action = new ActionItemModel((ActionItemModel)a);
            }
            else if (a is ActionSubmenuItemModel)
            {
                action = new ActionSubmenuItemModel((ActionSubmenuItemModel)a);
            }
            else if (a is ActionSeparatorItemModel)
            {
                action = new ActionSeparatorItemModel((ActionSeparatorItemModel)a);
            }
            return(action);
        }
コード例 #8
0
 public DoActionEvent(IBaseAction actionToDo)
 {
     ActionToDo = actionToDo;
 }
コード例 #9
0
 /// <summary>
 /// Adds an action class to the list. This list will be used to set the execution mode from the test context
 /// </summary>
 /// <param name="actionClass"></param>
 protected void AddActionClassesToList(IBaseAction actionClass)
 {
     UIActionClasses.Add(actionClass);
 }
コード例 #10
0
 //TODO expaned so the method accepts base ActionInterface or Class
 //Pass in REAL action
 public void Move(IBaseAction _baseAction)
 {
     //Action Execute should be called on the real action
     _baseAction.Execute(); //Should superseed Execute in the REAL class and execute that one
 }
コード例 #11
0
        public static InboundRule ToInboundRule(this InboundRuleItem inboundRuleItem, string siteNameRestriction)
        {
            if (inboundRuleItem == null)
            {
                return(null);
            }

            var conditionItems = GetBaseConditionItems(inboundRuleItem);
            //var serverVariableItems = GetServerVariableItems(inboundRuleItem);
            //var requestHeaderItems = GetRequestHeaderItems(inboundRuleItem);
            var responseHeaderItems = GetResponseHeaderItems(inboundRuleItem);

            var inboundRule = new InboundRule
            {
                ItemId = inboundRuleItem.ID.Guid,
                Name   = inboundRuleItem.Name
            };

            SetBaseRule(inboundRuleItem.BaseRuleItem, inboundRule);

            if (string.IsNullOrEmpty(inboundRuleItem.BaseRuleItem.BaseMatchItem.MatchPatternItem.Pattern.Value))
            {
                Log.Warn(logObject, inboundRuleItem.Database, "No pattern set on rule with ItemID: {0}", inboundRuleItem.ID);

                return(null);
            }

            if (inboundRuleItem.Action == null)
            {
                Log.Warn(logObject, inboundRuleItem.Database, "No action set on rule with ItemID: {0}", inboundRuleItem.ID);

                return(null);
            }

            var         baseActionItem = inboundRuleItem.Action.TargetItem;
            IBaseAction baseAction     = null;

            if (baseActionItem != null)
            {
                var baseActionItemTemplateId = baseActionItem.TemplateID.ToString();

                if (baseActionItemTemplateId.Equals(RedirectItem.TemplateId, StringComparison.InvariantCultureIgnoreCase))
                {
                    baseAction = new RedirectItem(baseActionItem).ToRedirectAction();
                }
                else if (baseActionItemTemplateId.Equals(RewriteItem.TemplateId,
                                                         StringComparison.InvariantCultureIgnoreCase))
                {
                    baseAction = new RewriteItem(baseActionItem).ToRewriteAction();
                }
                else if (baseActionItemTemplateId.Equals(AbortRequestItem.TemplateId,
                                                         StringComparison.InvariantCultureIgnoreCase))
                {
                    baseAction = new AbortRequestItem(baseActionItem).ToAbortRequestAction();
                }
                else if (baseActionItemTemplateId.Equals(CustomResponseItem.TemplateId,
                                                         StringComparison.InvariantCultureIgnoreCase))
                {
                    baseAction = new CustomResponseItem(baseActionItem).ToCustomResponseAction();
                }
                else if (baseActionItemTemplateId.Equals(ItemQueryRedirectItem.TemplateId))
                {
                    baseAction = new ItemQueryRedirectItem(baseActionItem).ToItemQueryRedirectAction();
                }
            }
            inboundRule.Action = baseAction;

            if (conditionItems != null)
            {
                SetConditions(conditionItems, inboundRule);
            }

            //if (serverVariableItems != null)
            //{
            //    SetServerVariables(serverVariableItems, inboundRule);
            //}

            //if (requestHeaderItems != null)
            //{
            //    SetRequestHeaders(requestHeaderItems, inboundRule);
            //}

            if (responseHeaderItems != null)
            {
                SetResponseHeaders(responseHeaderItems, inboundRule);
            }

            inboundRule.SiteNameRestriction = siteNameRestriction;

            return(inboundRule);
        }
コード例 #12
0
ファイル: BaseUnitTest.cs プロジェクト: sharathannaiah/CMP
 /// <summary>
 /// Adds an action class to the list. This list will be used to set the execution mode from the test context
 /// </summary>
 /// <param name="actionClass"></param>
 protected void AddActionClassesToList(IBaseAction actionClass)
 {
     UIActionClasses.Add(actionClass);
 }
コード例 #13
0
ファイル: Program.cs プロジェクト: glueckkanja/azzipgo
 private static async Task <int> Run(IBaseAction operation)
 {
     return(await operation.RunAsync());
 }