public void ParseXml(XElement data) { var logicNodes = data.Elements("logicNode").ToList(); for (var i = 0; i < logicNodes.Count; i++) { try { int id; var idTest = Input.GetAttribute(logicNodes[i], "id"); if (string.IsNullOrWhiteSpace(idTest)) id = i; //if no id is supplied use the index else { idTest = idTest.ToUpper(); if (idTest[0] >= 'A' && idTest[0] <= 'Z') //preferred format is A, B, C, etc. to match equation id = idTest[0] - 'A'; else if (!int.TryParse(idTest, out id)) //numerical ids are also accepted where 0 = A { if (BoostLog.Instance != null) BoostLog.Instance.WriteEntry(EventLogEntryType.Error, string.Format("Illegal LogicNode id {0}", idTest), "", Alias); id = i; //in case of error, use index } } var lNode = new LogicNode(Alias, logicNodes[i]); Add(id, lNode); } catch { continue; } } var equation = data.Element("logicEquation"); Logic = new LogicEquation(Alias, equation, _maxNodeId); }
public LogicSet(string alias) { Alias = alias; Logic = new LogicEquation(alias, 0); Nodes = new Dictionary<int, LogicNode>(); }