示例#1
0
        public List <Page> Execute()
        {
            List <Page> pages         = new List <Page>();
            XmlDocument rqlXml        = new XmlDocument();
            XmlElement  ioDataElement = rqlXml.CreateElement("IODATA");
            XmlElement  pageElement   = rqlXml.CreateElement("PAGE");

            pageElement.SetAttribute("action", "search");
            pageElement.SetAttribute("flags", PageType.ToString());
            pageElement.SetAttribute("maxrecords", MaxRecords.ToString());
            if (Headline != null)
            {
                pageElement.SetAttribute("headline", Headline);
                pageElement.SetAttribute("headlinelike", HeadlineExact ? "0" : "-1");
            }
            if (Category != null)
            {
                pageElement.SetAttribute("section", Category);
            }
            if (Keyword != null)
            {
                pageElement.SetAttribute("keyword", Keyword);
                pageElement.SetAttribute("keywordlike", KeywordExact ? "0" : "-1");
            }
            if (Text != null)
            {
                pageElement.SetAttribute("searchtext", Text);
            }
            if (PageIdFrom != -1)
            {
                pageElement.SetAttribute("pageidfrom", PageIdFrom.ToString());
            }
            if (PageIdTo != -1)
            {
                pageElement.SetAttribute("pageidto", PageIdTo.ToString());
            }
            if (CreatedTo != DateTime.MinValue)
            {
                pageElement.SetAttribute("createdateto", ((int)CreatedTo.ToOADate()).ToString());
            }
            if (CreatedFrom != DateTime.MinValue)
            {
                pageElement.SetAttribute("createdatefrom", CreatedFrom.ToString());
            }
            if (Template != null)
            {
                pageElement.SetAttribute("templateguid", Template.GuidString);
            }
            ioDataElement.AppendChild(pageElement);
            rqlXml.AppendChild(ioDataElement);
            _xmlDoc.LoadXml(Session.Execute(rqlXml));
            XmlNodeList xmlNodes = _xmlDoc.GetElementsByTagName("PAGE");

            foreach (XmlNode xmlNode in xmlNodes)
            {
                pages.Add(new Page(xmlNode));
            }
            return(pages);
        }
        public IEnumerable <IPage> Execute()
        {
            var        rqlXml      = new XmlDocument();
            XmlElement pageElement = rqlXml.CreateElement("PAGE");

            pageElement.SetAttribute("action", "search");
            pageElement.SetAttribute("flags", ((int)PageType).ToString(CultureInfo.InvariantCulture));
            pageElement.SetAttribute("maxrecords", MaxRecords.ToString(CultureInfo.InvariantCulture));
            if (Headline != null)
            {
                pageElement.SetAttribute("headline", Headline);
                pageElement.SetAttribute("headlinelike", IsMatchingHeadlineExactly ? "0" : "-1");
            }
            if (Category != null)
            {
                pageElement.SetAttribute("section", Category);
            }
            if (Keyword != null)
            {
                pageElement.SetAttribute("keyword", Keyword);
                pageElement.SetAttribute("keywordlike", IsMatchingKeywordExactly ? "0" : "-1");
            }
            if (Text != null)
            {
                pageElement.SetAttribute("searchtext", Text);
            }
            if (PageIdFrom != -1)
            {
                pageElement.SetAttribute("pageidfrom", PageIdFrom.ToString(CultureInfo.InvariantCulture));
            }
            if (PageIdTo != -1)
            {
                pageElement.SetAttribute("pageidto", PageIdTo.ToString(CultureInfo.InvariantCulture));
            }
            if (CreatedTo != DateTime.MinValue)
            {
                pageElement.SetAttribute("createdateto", (CreatedTo.ToOADate()).ToString(CultureInfo.InvariantCulture));
            }
            if (CreatedFrom != DateTime.MinValue)
            {
                pageElement.SetAttribute("createdatefrom",
                                         (CreatedFrom.ToOADate()).ToString(CultureInfo.InvariantCulture));
            }
            if (ContentClass != null)
            {
                pageElement.SetAttribute("templateguid", ContentClass.Guid.ToRQLString());
            }

            XmlDocument xmlDoc = _project.ExecuteRQL(pageElement.OuterXml);

            return((from XmlElement curNode in xmlDoc.GetElementsByTagName("PAGE")
                    let nodeWithLanguageVariantId = AddLanguageVariantId(curNode)
                                                    select new Page(_project, nodeWithLanguageVariantId)).ToList());
        }