Example #1
0
        protected override bool Process(IInteraction parameters)
        {
            TextReader         urlDataReader           = null;
            bool               success                 = true;
            SimpleInteraction  valuesByName            = new SimpleInteraction(parameters);
            Map <IInteraction> inputInteractionsByName = new Map <IInteraction> ();

            success = success && TryGetDatareader(parameters, null, out urlDataReader);
            success = success && this.ParserRunner.TryRun(urlDataReader, delegate(string name, string value) {
                WwwInputInteraction inputInteractions = new WwwInputInteraction(name, value, parameters);

                if (StringFieldWhiteList.Contains(inputInteractions.Name))
                {
                    if (Immediate)
                    {
                        success &= TryReportPair(valuesByName, inputInteractions);
                    }
                    else
                    {
                        if (this.DoMapping)
                        {
                            valuesByName [inputInteractions.Name] = inputInteractions.Value;
                        }
                        inputInteractionsByName [inputInteractions.Name] = inputInteractions;
                    }
                }
            });

            foreach (string fieldName in this.StringFieldWhiteList)
            {
                IInteraction currentField;

                if (!inputInteractionsByName.Has(fieldName))
                {
                    inputInteractionsByName [fieldName] = new WwwInputInteraction(fieldName, null, parameters);
                }

                currentField = inputInteractionsByName [fieldName];

                success = success && (!Branches.Has(fieldName) || Branches [fieldName].TryProcess(currentField));
                success = success && (!DoIterate || this.Iterator.TryProcess(currentField));
            }

            success = success && (!this.DoMapping || this.Mapped.TryProcess(valuesByName));

            return(success);
        }
Example #2
0
        protected override bool Process(IInteraction parameters)
        {
            XMLNodeInteraction preceeding = FindNode(parameters);
            string             name;
            bool successful = true;

            XmlNodeList children;

            if (this.Path.Length > 0)
            {
                children = preceeding.Node.SelectNodes(this.Path);
            }

            else
            {
                children = preceeding.Node.ChildNodes;
            }


            foreach (XmlNode child in children)
            {
                name = child.LocalName.TrimStart('#');

                if (Branches.Has(name))
                {
                    successful &= Branches[name].TryProcess(new XMLNodeInteraction(parameters, child, preceeding.Source));
                }
                else if (this.AnyNode != null)
                {
                    successful &= this.AnyNode.TryProcess(new XMLNodeInteraction(parameters, child, preceeding.Source));
                }
            }

            if ((children.Count == 0) && (this.NoNode != null))
            {
                successful &= this.NoNode.TryProcess(parameters);
            }

            return(successful);
        }