//[DataMember(Order = 13)] //public new string FolderName { get; set; } public override Content.Query.IContentQuery <Content.Models.TextContent> Execute(DataRuleContext dataRuleContext) { var site = dataRuleContext.Site; var repository = Sites.Models.ModelExtensions.GetRepository(site); if (repository == null) { throw new SiteRepositoryNotExists(); } var folder = FolderHelper.Parse <TextFolder>(repository, FolderName).AsActual(); if (folder == null) { throw new KoobooException(string.Format("The folder does not exists.\"{0}\"".Localize(), FolderName)); } Content.Query.IContentQuery <Content.Models.TextContent> contentQuery = null; if (folder is TextFolder) { var textFolder = (TextFolder)folder; contentQuery = textFolder.CreateQuery(); } //else //{ // var binaryFolder = (MediaFolder)folder; // contentQuery = binaryFolder.CreateQuery(); //} if (WhereClauses != null) { contentQuery = contentQuery.Where(WhereClauses.Parse(folder.GetSchema(), dataRuleContext.ValueProvider)); } if (!string.IsNullOrEmpty(CategoryFolderName) && this.CategoryClauses != null && this.CategoryClauses.Length > 0) { var categoryFolder = FolderHelper.Parse <TextFolder>(repository, CategoryFolderName); var categoryQuery = categoryFolder.CreateQuery(); var expression = CategoryClauses.Parse(categoryFolder.GetSchema(), dataRuleContext.ValueProvider); if (expression != null) { categoryQuery = categoryQuery.Where(expression); contentQuery = contentQuery.WhereCategory(categoryQuery); } } //query the Published=null content for inline editor.. if (Page_Context.Current.EnabledInlineEditing(EditingType.Content)) { //contentQuery = contentQuery.Where( // new Content.Query.Expressions.OrElseExpression( // new Content.Query.Expressions.WhereEqualsExpression(null, "Published", true), // new Content.Query.Expressions.WhereEqualsExpression(null, "Published", null))); } else { contentQuery = contentQuery.WhereEquals("Published", true); //default query published=true. } return(contentQuery); }
public override IContentQuery <Content.Models.TextContent> GetContentQuery(DataRuleContext dataRuleContext) { var site = dataRuleContext.Site; var repositoryName = site.Repository; if (string.IsNullOrEmpty(repositoryName)) { throw new KoobooException("The repository for site is null."); } var repository = new Repository(repositoryName); var schema = new Schema(repository, SchemaName); var contentQuery = (IContentQuery <Content.Models.TextContent>)schema.CreateQuery(); contentQuery.Where(WhereClauses.Parse(schema, dataRuleContext.ValueProvider)); return(contentQuery); }