public void Commit() { const string SAVE_KEYWORD = @"<PROJECT><KEYWORD action=""save"" guid=""{0}"" value=""{1}""/></PROJECT>"; string htmlEncodedName = HttpUtility.HtmlEncode(Name); var xmlDoc = Project.ExecuteRQL(SAVE_KEYWORD.RQLFormat(this, htmlEncodedName)); const string KEYWORD_XPATH_TEMPLATE = "/IODATA/KEYWORD[@value='{0}' and @guid='{1}']"; string keywordXPath = KEYWORD_XPATH_TEMPLATE.RQLFormat(htmlEncodedName, this); var keyword = xmlDoc.SelectSingleNode(keywordXPath); if (keyword == null) { throw new SmartAPIException(Session.ServerLogin, string.Format("Could not rename keyword to '{0}'", Name)); } }
public IKeyword CreateOrGet(string keywordName) { const string SAVE_KEYWORD = @"<CATEGORY guid=""{0}""><KEYWORD action=""save"" value=""{1}""/></CATEGORY>"; var xmlDoc = Category.Project.ExecuteRQL(SAVE_KEYWORD.RQLFormat(Category, HttpUtility.HtmlEncode(keywordName)), RqlType.SessionKeyInProject); var keyword = (XmlElement)xmlDoc.SelectSingleNode("/IODATA/KEYWORD"); if (keyword == null) { throw new SmartAPIException(Session.ServerLogin, string.Format("Could not create the keyword '{0}'", keywordName)); } InvalidateCache(); return(new Keyword(Category.Project, keyword)); }