SerializableSnippet HandleSnippet(XmlElement xmlElement) { SerializableSnippet retVal = new SerializableSnippet(); foreach (XmlElement child in xmlElement.ChildNodes) { if (child.Name.Equals("Text")) { string text = GetTextBelow(child); retVal.Text = text; } else if (child.Name.Equals("Title")) { string text = GetTextBelow(child); retVal.Title = text; } else if (child.Name.Equals("Created")) { string text = GetTextBelow(child); retVal.Created = deserializeDateTime(text); } else if (child.Name.Equals("Color")) { string text = GetTextBelow(child); retVal.Color = text; } else if (child.Name.Equals("Icon")) { string text = GetTextBelow(child); retVal.Icon = text; } else if (child.Name.Equals("Id")) { string text = GetTextBelow(child); retVal.Id = Convert.ToInt32(text); } else if (child.Name.Equals("Child")) { string text = GetTextBelow(child); retVal.children.Add(Convert.ToInt32(text)); } else if (child.Name.Equals("Criterion")) { string text = GetTextBelow(child); SerializableCriterion criterion = new SerializableCriterion(text); retVal.Criteria.Add(criterion); } } return retVal; }
private XmlElement makeSnippetXmlAndAppend(XmlDocument doc, XmlElement parent, SerializableSnippet snippet) { XmlElement snippetNode = doc.CreateElement("Snippet"); makeTextAndAppend(doc,snippetNode,"Text",snippet.Text); makeTextAndAppend(doc,snippetNode,"Title",snippet.Title); makeTextAndAppend(doc,snippetNode,"Created",serialize(snippet.Created)); makeTextAndAppend(doc,snippetNode,"Id",Convert.ToString(snippet.Id)); makeTextAndAppend(doc,snippetNode,"Color",snippet.Color); makeTextAndAppend(doc,snippetNode,"Icon",Convert.ToString(snippet.Icon)); foreach (int child in snippet.children) { makeChildXmlAndAppend(doc,snippetNode,child); } foreach (SerializableCriterion criterion in snippet.Criteria) { makeCriterionXmlAndAppend(doc, snippetNode, criterion); } parent.AppendChild(snippetNode); return snippetNode; }
/// <summary> /// first time around, goes to the to level snippets, otherwise it goes to normal snippets /// </summary> /// <param name="snippet"></param> /// <param name="storeWhere"></param> public void Handle(Snippet snippet) { if (!snippets.ContainsKey(snippet.Id)) { SerializableSnippet sSnippet = new SerializableSnippet(snippet); snippets.Add(sSnippet.Id, sSnippet); foreach (Snippet child in snippet.Children) { Handle(child); } } }