public void SaveHyperlink(HyperlinkItem hyperlink) { XElement offline = XElement.Load(xmlFile); if (hyperlinkExists(hyperlink.Id, offline)) { // update the hyperlink. XElement hyperlinkElement = offline.Element(itemCollectionElementName).Elements(itemElementName) .Where(xh => (string)xh.Attribute(HLINK_ATTR_ID).Value == hyperlink.Id).FirstOrDefault(); hyperlinkElement.Attribute(HLINK_ATTR_TOPIC).Value = hyperlink.Topic; hyperlinkElement.Attribute(HLINK_ATTR_URL).Value = hyperlink.Url; hyperlinkElement.Element(HLINK_ELEMENT_PHRASES).Value = hyperlink.DelimitedKeyPhraseList; hyperlinkElement.Element(HLINK_ATTR_DESC).ReplaceNodes(new XCData(hyperlink.Description)); } else { // create a new hyperlink XElement xHyperlink = new XElement(itemElementName); xHyperlink.Add(new XAttribute(HLINK_ATTR_ID, hyperlink.Id)); xHyperlink.Add(new XAttribute(HLINK_ATTR_TOPIC, hyperlink.Topic)); xHyperlink.Add(new XAttribute(HLINK_ATTR_URL, hyperlink.Url)); xHyperlink.Add(new XAttribute(HLINK_ATTR_STATE, hyperlink.State.ToString())); xHyperlink.Add(new XElement(HLINK_ELEMENT_PHRASES, hyperlink.DelimitedKeyPhraseList)); xHyperlink.Add(new XElement(HLINK_ATTR_DESC, new XCData(hyperlink.Description))); offline.Element(itemCollectionElementName).Add(xHyperlink); } offline.Save(xmlFile); }
public void RemoveHyperlink(HyperlinkItem hyperlink) { XElement offline = XElement.Load(xmlFile); if (hyperlinkExists(hyperlink.Id, offline)) { offline.Element(itemCollectionElementName).Elements(itemElementName) .Where(hyp => (string)hyp.Attribute(HLINK_ATTR_ID).Value == hyperlink.Id) .Remove(); offline.Save(xmlFile); } }
public HyperlinkItem GetHyperlink(string id) { XElement offline = XElement.Load(xmlFile); XElement hyperlinkElement = offline.Element(itemCollectionElementName).Elements(itemElementName) .Where(xh => (string)xh.Attribute(HLINK_ATTR_ID).Value == id).FirstOrDefault(); HyperlinkItem hyperlink = new HyperlinkItem((string)hyperlinkElement.Attribute(HLINK_ATTR_ID), (string)hyperlinkElement.Element(HLINK_ELEMENT_PHRASES).Value) { Topic = (string)hyperlinkElement.Attribute(HLINK_ATTR_TOPIC), Url = (string)hyperlinkElement.Attribute(HLINK_ATTR_URL), State = stateFromString((string)hyperlinkElement.Attribute(HLINK_ATTR_STATE)), Description = (string)hyperlinkElement.Element(HLINK_ATTR_DESC) }; return(hyperlink); }