public object Execute(Query.IContentQuery <Models.MediaContent> query) { var mediaQuery = (MediaContentQuery)query; QueryExpressionTranslator translator = new QueryExpressionTranslator(); var contentQueryable = translator.Translate(query.Expression, All(mediaQuery.MediaFolder)); //translator.Visite(query.Expression); switch (translator.CallType) { case CallType.Count: return(contentQueryable.Count()); case CallType.First: return(contentQueryable.First()); case CallType.Last: return(contentQueryable.Last()); case CallType.LastOrDefault: return(contentQueryable.LastOrDefault()); case CallType.FirstOrDefault: return(contentQueryable.FirstOrDefault()); case CallType.Unspecified: default: return(contentQueryable); } }
public object Execute(Query.IContentQuery <Models.TextContent> query) { var translator = new QueryProcessor.TextContentTranslator(); var executor = translator.Translate(query); return(executor.Execute()); }
public TranslatedQuery Translate(Query.IContentQuery <TextContent> contentQuery) { if (contentQuery is CategoriesQuery) { var categoriesQuery = (CategoriesQuery)contentQuery; var translated = new TranslatedCategoriesQuery(categoriesQuery.Repository, categoriesQuery.CategoryFolder); translated.SubQuery = this.Translate(categoriesQuery.InnerQuery); StringVisitor visitor = new StringVisitor(translated); visitor.Visite(contentQuery.Expression); return(translated); } //else if (contentQuery is CategorizablesQuery) //{ // var categorizablesQuery = (CategorizablesQuery)contentQuery; // var translated = new TranslatedCategorizablesQuery(categorizablesQuery.Repository, categorizablesQuery.CategorizableFolder); // translated.CategoryQuery = this.Translate(categorizablesQuery.CategoryQuery); // StringVisitor visitor = new StringVisitor(translated); // visitor.Visite(contentQuery.Expression); // return translated; //} else if (contentQuery is ChildrenQuery) { var childrenQuery = (ChildrenQuery)contentQuery; var translated = new TranslatedChildrenQuery(childrenQuery.Repository, childrenQuery.ChildSchema); translated.ParentQuery = this.Translate(childrenQuery.ParentQuery); StringVisitor visitor = new StringVisitor(translated); visitor.Visite(contentQuery.Expression); return(translated); } else if (contentQuery is ParentQuery) { var parentQuery = (ParentQuery)contentQuery; var translated = new TranslatedParentQuery(parentQuery.Repository, parentQuery.ParentSchema); translated.ChildrenQuery = this.Translate(parentQuery.ChildrenQuery); StringVisitor visitor = new StringVisitor(translated); visitor.Visite(contentQuery.Expression); return(translated); } else if (contentQuery is TextContentQuery) { var textContentQuery = (TextContentQuery)contentQuery; var translated = new TranslatedTextContentQuery(textContentQuery.Repository, textContentQuery.Schema, textContentQuery.Folder); StringVisitor visitor = new StringVisitor(translated); visitor.Visite(contentQuery.Expression); return(translated); } return(null); }
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); }
public IQueryExecutor <TextContent> Translate(Query.IContentQuery <TextContent> contentQuery) { if (contentQuery is CategoriesQuery) { return(new CategoriesQueryExecutor((CategoriesQuery)contentQuery)); } //else if (contentQuery is CategorizablesQuery) //{ // return new CategorizablesQueryExecutor((CategorizablesQuery)contentQuery); //} else if (contentQuery is ChildrenQuery) { return(new ChildrenQueryExecutor((ChildrenQuery)contentQuery)); } else if (contentQuery is ParentQuery) { return(new ParentQueryExecutor((ParentQuery)contentQuery)); } else if (contentQuery is TextContentQuery) { return(new SimpleQueryExecutor((TextContentQuery)contentQuery)); } return(null); }
public object Execute(Query.IContentQuery <Models.MediaContent> query) { MediaContentQueryExecutor executor = new MediaContentQueryExecutor((MediaContentQuery)query); return(executor.Execute()); }
object IContentProvider <Models.TextContent> .Execute(Query.IContentQuery <Models.TextContent> query) { return(ContentQueryExecutor.Execute(query)); }