Esempio n. 1
0
        //[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);
        }
Esempio n. 2
0
        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);
        }