Example #1
0
 public object Execute(Query.IContentQuery<Models.TextContent> query)
 {
     var translator = new QueryProcessor.TextContentTranslator();
     var executor = translator.Translate(query);
     return executor.Execute();
 }
Example #2
0
        public object Execute(Query.IContentQuery<Models.TextContent> query)
        {
            /*
            Categories
            SELECT * FROM [ef1].[dbo].[Test2] category
               WHERE  EXISTS(
                        SELECT ContentCategory.CategoryUUID
                            FROM [fullips.__ContentCategory] ContentCategory,
                                (SELECT * FROM [ef1].[dbo].[Tests] content WHERE ([UUID] = 'F562CCDW9FGM53WE') AND FolderName='Test' )content
                            WHERE content.UUID = ContentCategory.UUID AND ContentCategory.CategoryUUID = category.UUID
                      ) AND 1=1 AND FolderName='Test2' ORDER BY Id DESC

            */

            object result = null;

            //Get content from API service
            //
            if (query is TextContentQuery && ((TextContentQuery)query).Folder != null && ((TextContentQuery)query).Folder.GetActualFolder().StoreInAPI)
            {
                var folder = ((TextContentQuery)query).Folder;
                var schema = ((Kooboo.CMS.Content.Query.TextContentQuery)query).Schema;

                if (query.Expression is Query.Expressions.CallExpression)
                {
                    result = GetResult(folder, schema, (Expression)query.Expression, ((Query.Expressions.CallExpression)query.Expression).CallType);
                }
                else if (query.Expression is Query.Expressions.TakeExpression
                    || query.Expression is Kooboo.CMS.Content.Query.Expressions.OrderExpression)
                {
                    result = GetResult(folder, schema, (Expression)query.Expression, Kooboo.CMS.Content.Query.Expressions.CallType.Unspecified);
                }
                if (result == null)
                    return new TextContent[] {};

                return result;
            }

            var translator = new QueryProcessor.TextContentTranslator();
            var executor = translator.Translate(query);
            result = executor.Execute();

            return result;
        }