コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: mohit5783/Actuator
        private void LoadAllConditionalActions()
        {
            if (File.Exists("ConditionActions.xml"))
            {
                ConditionAction        ca  = new ConditionAction();
                List <ConditionAction> lca = new List <ConditionAction>();
                XElement root = XElement.Load("ConditionActions.xml");
                root.Elements("ConditionActions").All <XElement>(xe2 =>
                {
                    xe2.Elements("ConditionAction").All <XElement>(xe =>
                    {
                        lca.Add(new ConditionAction()
                        {
                            id       = Convert.ToInt32(xe.Attribute("id").Value),
                            ObjType  = xe.Attribute("Type").Value,
                            ParentID = Convert.ToInt32(xe.Attribute("Parent").Value),

                            CondAct = (xe.Attribute("Type").Value == "Condition" ? (object)AMAActionableObjects.FixedConditionCollection.Where(x => x.id == Convert.ToInt32(xe.Attribute("ConditionAction").Value)).FirstOrDefault() : (object)AMAActionableObjects.FixedWorkflowActionCollection.Where(x => x.id == Convert.ToInt32(xe.Attribute("ConditionAction").Value)).FirstOrDefault())
                        });
                        return(true);
                    });
                    ConditionActionCollection cac = new ConditionActionCollection();
                    cac.AddConditionAction(lca);
                    lca.Clear();
                    cac.ConditionActionID = Convert.ToInt32(xe2.Attribute("ID").Value);
                    objAllCondAction.AddConditionActionCollection(cac);
                    return(true);
                });
                AMAActionableObjects.FixedAllConditionsActions = objAllCondAction;
            }
        }
コード例 #2
0
        protected void DFS(JToken JsonData, params Tuple <Condition, ConstructorAction>[] ConditionActions)
        {
            if (JsonData != null)
            {
                if (ConditionActions != null)
                {
                    foreach (Tuple <Condition, ConstructorAction> ConditionAction in ConditionActions)
                    {
                        if (ConditionAction != null)
                        {
                            if (ConditionAction.Item1(JsonData))
                            {
                                ConditionAction.Item2(JsonData);
                            }
                        }
                    }
                }

                if (JsonData.HasValues)
                {
                    for (JToken Child = JsonData.First; Child != null; Child = Child.Next)
                    {
                        DFS(Child, ConditionActions);
                    }
                }
            }
        }
コード例 #3
0
        public override bool CanChildRun(IAction action)
        {
            ConditionAction conditionAction = action as ConditionAction;

            HtmlElement element = this.GetData(action) as HtmlElement;

            return(element != null);
        }
コード例 #4
0
 public virtual void UpdateStatus()
 {
     if (this.codon != null)
     {
         ConditionAction failedAction = this.codon.GetFailedAction(this.caller);
         bool            visibled     = failedAction != ConditionAction.Exclude;
         this.Visible = visibled;
     }
 }
コード例 #5
0
 public void UpdateStatus()
 {
     if (this.codon != null)
     {
         ConditionAction failedAction = this.codon.GetFailedAction(this.caller);
         bool            enabled      = failedAction != ConditionAction.Disable;
         this.Enabled = enabled;
         bool visibled = failedAction != ConditionAction.Exclude;
         this.Visible = visibled;
         ConditionAction checkStateAction = this.codon.GetCheckStateAction(this.caller);
         if (checkStateAction == ConditionAction.Checked || checkStateAction == ConditionAction.UnChecked)
         {
             bool @checked = checkStateAction == ConditionAction.Checked;
             base.Checked = @checked;
         }
     }
 }
コード例 #6
0
        public static ConditionAction GetFailedAction(System.Collections.Generic.IEnumerable <ICondition> conditionList, object caller)
        {
            ConditionAction result = ConditionAction.Nothing;

            foreach (ICondition current in conditionList)
            {
                if (current.Action != ConditionAction.Checked && current.Action != ConditionAction.UnChecked && !current.IsValid(caller))
                {
                    if (current.Action != ConditionAction.Disable)
                    {
                        return(ConditionAction.Exclude);
                    }
                    result = ConditionAction.Disable;
                }
            }
            return(result);
        }
コード例 #7
0
 public virtual void UpdateStatus()
 {
     if (this.codon != null)
     {
         ConditionAction failedAction = this.codon.GetFailedAction(this.caller);
         bool            enabled      = failedAction != ConditionAction.Disable;
         this.Enabled = enabled;
         bool visibled = failedAction != ConditionAction.Exclude;
         if (visibled)
         {
             this.Visibility = BarItemVisibility.Always;
         }
         else
         {
             this.Visibility = BarItemVisibility.Never;
         }
     }
 }
コード例 #8
0
        public object BuildItem(object owner, System.Collections.ArrayList subItems)
        {
            IDoozer doozer;

            if (!AddInTree.Doozers.TryGetValue(this.Name, out doozer))
            {
                throw new CoreException("Doozer " + this.Name + " not found!");
            }
            if (!doozer.HandleConditions && this.conditions.Length > 0)
            {
                ConditionAction failedAction = this.GetFailedAction(owner);
                if (failedAction != ConditionAction.Nothing)
                {
                    return(null);
                }
            }
            return(doozer.BuildItem(owner, this, subItems));
        }
コード例 #9
0
        private void AddAction_Click(object sender, RoutedEventArgs e)
        {
            if (cmbWorkflowActions.SelectedIndex != -1)
            {
                WorkflowAction ActStat = cmbWorkflowActions.SelectedItem as WorkflowAction;

                ConditionAction ca = new ConditionAction();
                ca.id       = ListConditionAction.Count + 1;
                ca.CondAct  = ActStat;
                ca.ParentID = LastConditionID;

                ListConditionAction.Add(ca);

                string ActionStatement = ActStat.ActionName;
                WriteCode(ActionStatement, "Action");
            }
            GrdAddAction.Visibility          = Visibility.Collapsed;
            cmbWorkflowActions.SelectedIndex = -1;
        }
コード例 #10
0
        public static ICondition ReadComplexCondition(XmlReader reader)
        {
            Properties properties = Properties.ReadFromAttributes(reader);

            reader.Read();
            ICondition condition = null;

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                case XmlNodeType.Element:
                    switch (reader.LocalName)
                    {
                    case "And":
                        condition = AndCondition.Read(reader);
                        goto exit;

                    case "Or":
                        condition = OrCondition.Read(reader);
                        goto exit;

                    case "Not":
                        condition = NegatedCondition.Read(reader);
                        goto exit;

                    default:        //由错误提示可以看出ComplexCondition必须至少含有一个And、Or或者Not标签,后面就可以加Codon了
                        throw new AddInLoadException("Invalid element name '" + reader.LocalName
                                                     + "', the first entry in a ComplexCondition " +
                                                     "must be <And>, <Or> or <Not>");
                    }
                }
            }
exit:
            if (condition != null)
            {
                ConditionAction action = properties.Get("action", ConditionAction.Exclude);
                condition.Action = action;
            }
            return(condition);
        }
コード例 #11
0
        private void AddCondition_Click(object sender, RoutedEventArgs e)
        {
            if (cmbCondition.SelectedIndex != -1)
            {
                Model.ConditionModel.Condition conditionStatement = cmbCondition.SelectedItem as Model.ConditionModel.Condition;

                ConditionAction ca = new ConditionAction();
                ca.id           = ListConditionAction.Count + 1;
                ca.CondAct      = conditionStatement;
                ca.ParentID     = LastConditionID;
                LastConditionID = ca.id;

                ListConditionAction.Add(ca);

                WriteCode(conditionStatement.Description, "Condition");
            }


            GrdAddCondition.Visibility = Visibility.Collapsed;
            cmbCondition.SelectedIndex = -1;
        }
コード例 #12
0
 public virtual void UpdateStatus()
 {
     if (this.codon != null)
     {
         ConditionAction failedAction = this.codon.GetFailedAction(this.caller);
         bool            enabled      = failedAction != ConditionAction.Disable;
         this.Enabled = enabled;
         bool visibled = failedAction != ConditionAction.Exclude;
         if (visibled)
         {
             this.Visibility = BarItemVisibility.Always;
         }
         else
         {
             this.Visibility = BarItemVisibility.Never;
         }
         ConditionAction checkStateAction = this.codon.GetCheckStateAction(this.caller);
         if (checkStateAction == ConditionAction.Checked || checkStateAction == ConditionAction.UnChecked)
         {
             bool @checked = checkStateAction == ConditionAction.Checked;
             base.EditValue = @checked;
         }
     }
 }
コード例 #13
0
        public static ConditionAction GetCheckStateAction(System.Collections.Generic.IEnumerable <ICondition> conditionList, object caller)
        {
            //ConditionAction result = ConditionAction.UnChecked;
            //foreach (ICondition current in conditionList)
            //{
            //    if (current.Action == ConditionAction.Checked || current.Action == ConditionAction.UnChecked)
            //    {
            //        if (current.IsValid(caller))
            //        {
            //            result = ConditionAction.Checked;
            //            break;
            //        }
            //        break;
            //    }
            //}
            //return result;
            ConditionAction result = ConditionAction.Nothing;

            foreach (ICondition current in conditionList)
            {
                if (current.Action == ConditionAction.Checked || current.Action == ConditionAction.UnChecked)
                {
                    if (current.IsValid(caller))
                    {
                        result = ConditionAction.Checked;
                        break;
                    }
                    else
                    {
                        result = ConditionAction.UnChecked;
                        break;
                    }
                }
            }
            return(result);
        }
コード例 #14
0
ファイル: WixVisitor.cs プロジェクト: tmauldin/mb-unit
 public virtual void VisitConditionAction(ConditionAction node)
 {
 }
コード例 #15
0
 public Condition(string name, Properties properties)
 {
     this.name       = name;
     this.properties = properties;
     this.action     = properties.Get <ConditionAction>("action", ConditionAction.Exclude);
 }