protected override Unifiable ProcessChangeU() { if (FinalResultValid) { return(FinalResult); } ResetValues(true); int maxConditions = GetAttribValue <int>(templateNode, "count", 1); int minConditions = GetAttribValue <int>(templateNode, "mincount", 1); var nodes = SelectNodes(templateNode.ChildNodes); if (CheckNode("random")) { Unifiable appendable = Unifiable.CreateAppendable(); if (templateNode.HasChildNodes) { // only grab <li> nodes List <XmlNode> listNodes = new List <XmlNode>(); foreach (XmlNode childNode in nodes) { if (childNode.Name == "li") { listNodes.Add(childNode); } } // randomly grab <li> nodes and use them List <XmlNode> useNodes = new List <XmlNode>(); while (maxConditions-- > 0 && listNodes.Count > 0) { XmlNode chosenNode = listNodes[r.Next(0, listNodes.Count - 1)]; listNodes.Remove(chosenNode); var childResult = ProcessChildNode(chosenNode); if (childResult != null) { useNodes.Add(chosenNode); QueryHasSuceededN++; appendable.Append(childResult); } } if (QueryHasSuceededN < minConditions) { QueryHasFailedN++; return(null); } return(appendable); } } return(Unifiable.Empty); }
protected override Unifiable Format(Unifiable templateNodeInnerText) { if (CheckNode("formal")) { Unifiable result = Unifiable.CreateAppendable(); Unifiable rest = templateNodeInnerText; while (!IsNullOrEmpty(rest)) { // Unifiable[] words = templateNodeInnerText.AsString().Split(new char[]{''}); Unifiable word = rest.First; rest = rest.Rest; { Unifiable newWord = word.ToPropper(); result.Append(newWord); } } return(Trim(Unifiable.ToVMString(result))); } return(Unifiable.Empty); }
protected override Unifiable ProcessChangeU() { return(templateNodeInnerText); if (false && templateNode.Name.ToLower() == "aimlexec") { Unifiable result = Unifiable.CreateAppendable(); Unifiable rest = templateNodeInnerText; while (!IsNullOrEmpty(rest)) { // Unifiable[] words = templateNodeInnerText.AsString().Split(new char[]{''}); Unifiable word = templateNodeInnerText.First; rest = rest.Rest; { Unifiable newWord = word; result.Append(newWord + " "); } } return(Trim(Unifiable.ToVMString(result))); } return(templateNodeInnerText); }