2013-03-19 105 views
1

我在Orchard中创建自定义模块。在启用我的模块后,我想以编程方式创建查询。Orchard - 以编程方式创建查询

由于IDependency接口的实现,我在我的Migrations.cs文件中这样做了。

我能够创建查询,但我做我编程设置该查询的过滤器?

var announcementsQuery = _contentManager.Create("Query"); 
announcementsQuery.As<TitlePart>().Title = "Announcements"; 
_contentManager.Publish(announcementsQuery); 

谢谢

的Jakub

回答

2

我发现了如何做到这一点:

var announcementsQuery = _contentManager.Create("Query"); 
       announcementsQuery.As<TitlePart>().Title = "Announcements"; 
       announcementsQuery.As<QueryPart>().ContentItem.ContentType = "Announcement"; 
       var filterGroupRecord = new FilterGroupRecord(); 
       var filterRecord = new FilterRecord() 
        { 
         Category = "Content", 
         Type = "ContentTypes", 
         Description = "Announcement", 
         Position = 1, 
         State = "<Form><Description>Announcement</Description><ContentTypes>Announcement</ContentTypes></Form>" 
        }; 
       filterGroupRecord.Filters.Insert(0, filterRecord); 
       announcementsQuery.As<QueryPart>().FilterGroups.Insert(0, filterGroupRecord);