public static Return Read(XmlNode node) { var result = new Return(); if (node.Attributes != null) if (node.Attributes["numval"] != null) result.NumVal = Convert.ToInt16(node.Attributes["numval"].Value); result.Value = node.InnerText; return result; }
public Return Process(Instance instance) { bool conditionsMet = false; // Set Result to Default Value (in case nothing changes) Return result = Default; foreach (Value value in Values) { conditionsMet = false; foreach (var trigger in value.Triggers) { var instanceValue = instance.Values.Find(x => FindTrigger(x, trigger)); if (instanceValue != null) { conditionsMet = trigger.Process(instanceValue); } // if any triggers are not met then break if (!conditionsMet) { break; } } if (conditionsMet || value.Triggers.Count == 0) { foreach (MultiTrigger multiTrigger in value.MultiTriggers) { foreach (Trigger trigger in multiTrigger.Triggers) { var instanceValue = instance.Values.Find(x => FindTrigger(x, trigger)); if (instanceValue != null) { conditionsMet = trigger.Process(instanceValue); } // if any trigger is met then break (only one has to be met) if (conditionsMet) { break; } } // if none of the triggers were met then break (at least one has to be met) if (!conditionsMet) { break; } } } if (conditionsMet) { result = value.Result; // Break from loop since it shouldn't be able to meet any more Value's conditions break; } } // Get CaptureItems foreach (var captureItem in CaptureItems) { captureItem.PreviousValue = captureItem.Value; var instanceValue = instance.Values.ToList().Find(x => Tools.GetValue(x, "Id") == Tools.GetValue(captureItem, "Link")); if (instanceValue != null) { if (instanceValue.Value != captureItem.Value) { captureItem.Value = instanceValue.Value; } captureItem.Sequence = instanceValue.ChangedSequence; } else { captureItem.Value = ""; } result.CaptureItems = CaptureItems.ToList(); } return(result); }
private static bool NotEqualTo(Return r1, Return r2) { if (!object.ReferenceEquals(r1, null) && object.ReferenceEquals(r2, null)) return true; if (object.ReferenceEquals(r1, null) && !object.ReferenceEquals(r2, null)) return true; if (object.ReferenceEquals(r1, null) && object.ReferenceEquals(r2, null)) return false; return r1.Value != r2.Value; }
public Return Copy() { var result = new Return(); result.NumVal = NumVal; result.Value = Value; result.TimeStamp = TimeStamp; result.ChangedTimeStamp = ChangedTimeStamp; result.Sequence = Sequence; result.ChangedSequence = ChangedSequence; result.Duration = Duration; result.CaptureItems.AddRange(CaptureItems); return result; }
public static Configuration Read(XmlDocument configXML) { var result = new Configuration(); //XmlNodeList nodes = configXML.SelectNodes("//GeneratedData/GeneratedEvents"); XmlNodeList nodes = configXML.SelectNodes("//GeneratedEvents"); if (nodes != null) { if (nodes.Count > 0) { XmlNode node = nodes[0]; foreach (XmlNode child in node.ChildNodes) { if (child.NodeType == XmlNodeType.Element) { if (child.InnerText != null) { Type Setting = typeof(Configuration); PropertyInfo info = Setting.GetProperty(child.Name); if (info != null) { Type t = info.PropertyType; info.SetValue(result, Convert.ChangeType(child.InnerText, t), null); } else if (child.Name.ToLower() == "event") { if (child.NodeType == XmlNodeType.Element && child.Attributes != null) { if (child.Attributes["name"] != null) { var ev = new Event(); ev.Values = new List <Value>(); ev.Name = child.Attributes["name"].Value.ToString(); foreach (XmlNode Childnode in child.ChildNodes) { if (Childnode.NodeType == XmlNodeType.Element) { switch (Childnode.Name.ToLower()) { case "value": var value = Value.Read(Childnode); ev.Values.Add(value); break; case "default": var d = Return.Read(Childnode); d.Id = "DEFAULT_ID"; ev.Default = d; break; case "capture": foreach (XmlNode itemNode in Childnode.ChildNodes) { if (itemNode.NodeType == XmlNodeType.Element) { var item = CaptureItem.Read(itemNode); if (item != null) { ev.CaptureItems.Add(item); } } } break; } } } ev.PreviousValue = ev.Default; result.Events.Add(ev); } } } } } } } } return(result); }
public static Value Read(XmlNode node) { var result = new Value(); result.Triggers = new List<Trigger>(); result.MultiTriggers = new List<MultiTrigger>(); foreach (XmlNode childNode in node.ChildNodes) { if (childNode.NodeType == XmlNodeType.Element) { switch (childNode.Name.ToLower()) { case "triggers": foreach (XmlNode triggerNode in childNode) { if (triggerNode.NodeType == XmlNodeType.Element) { switch (triggerNode.Name.ToLower()) { case "trigger": var trigger = Trigger.Read(triggerNode); if (trigger != null) result.Triggers.Add(trigger); break; case "multitrigger": var multiTrigger = MultiTrigger.Read(triggerNode); if (multiTrigger != null) result.MultiTriggers.Add(multiTrigger); break; } } } break; case "result": var returnResult = new Return(); returnResult.Id = "DEFAULT_ID"; if (childNode.Attributes != null) if (childNode.Attributes["numval"] != null) returnResult.NumVal = Convert.ToInt16(childNode.Attributes["numval"].Value); returnResult.Value = childNode.InnerText; result.Result = returnResult; break; } } } return result; }
internal ValueData(Return eventReturn) { Id = Guid.NewGuid().ToString(); Value = eventReturn.Value; Timestamp = eventReturn.TimeStamp; Sequence = eventReturn.Sequence; ChangedTimestamp = eventReturn.ChangedTimeStamp; ChangedSequence = eventReturn.ChangedSequence; Numval = eventReturn.NumVal; }