示例#1
0
        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));
            }
        }
示例#2
0
        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));
        }