public static async Task <IEnumerable <ContentItem> > ContentQueryAsync(this OrchardRazorHelper razorHelper, string queryName, IDictionary <string, object> parameters) { var results = await razorHelper.QueryAsync(queryName, parameters); var contentItems = new List <ContentItem>(); foreach (var result in results) { if (!(result is ContentItem contentItem)) { contentItem = null; if (result is JObject jObject) { contentItem = jObject.ToObject <ContentItem>(); } } // If input is a 'JObject' but which not represents a 'ContentItem', // a 'ContentItem' is still created but with some null properties. if (contentItem?.ContentItemId == null) { continue; } contentItems.Add(contentItem); } return(contentItems); }
public static async Task <IHtmlContent> DisplayAsync(this OrchardRazorHelper razorHelper, ContentItem content, string displayType = "", string groupId = "", IUpdateModel updater = null) { var displayManager = razorHelper.HttpContext.RequestServices.GetService <IContentItemDisplayManager>(); var shape = await displayManager.BuildDisplayAsync(content, updater, displayType, groupId); return(await razorHelper.DisplayHelper.ShapeExecuteAsync(shape)); }
/// <summary> /// Loads a content item by its alias. /// </summary> /// <param name="alias">The alias to load.</param> /// <param name="latest">Whether a draft should be loaded if available. <c>false</c> by default.</param> /// <example>GetContentItemByAliasAsync("alias:carousel")</example> /// <example>GetContentItemByAliasAsync("autoroute:myblog/my-blog-post", true)</example> /// <returns>A content item with the specific alias, or <c>null</c> if it doesn't exist.</returns> public static async Task <ContentItem> GetContentItemByAliasAsync(this OrchardRazorHelper razorHelper, string alias, bool latest = false) { var contentItemId = await GetContentItemIdByAliasAsync(razorHelper, alias); var contentManager = razorHelper.HttpContext.RequestServices.GetService <IContentManager>(); return(await contentManager.GetAsync(contentItemId, latest?VersionOptions.Latest : VersionOptions.Published)); }
public static async Task <IEnumerable <object> > QueryAsync(this OrchardRazorHelper razorHelper, string queryName, IDictionary <string, object> parameters) { var queryManager = razorHelper.HttpContext.RequestServices.GetService <IQueryManager>(); var query = await queryManager.GetQueryAsync(queryName); if (query == null) { return(null); } return((IEnumerable <object>) await queryManager.ExecuteQueryAsync(query, parameters)); }
public static async Task <IEnumerable <ContentItem> > ContentQueryAsync(this OrchardRazorHelper razorHelper, string queryName, IDictionary <string, object> parameters) { return((await razorHelper.QueryAsync(queryName, parameters)).Select(o => ((JObject)o).ToObject <ContentItem>())); }
public static async Task <IEnumerable <ContentItem> > ContentQueryAsync(this OrchardRazorHelper razorHelper, string queryName) { return(await ContentQueryAsync(razorHelper, queryName, new Dictionary <string, object>())); }
/// <summary> /// Loads a content item by its version id. /// </summary> /// <param name="contentItemVersionId">The content item version id to load.</param> /// <example>GetContentItemByVersionIdAsync("4xxxxxxxxxxxxxxxx")</example> /// <returns>A content item with the specific version id, or <c>null</c> if it doesn't exist.</returns> public static Task <ContentItem> GetContentItemByVersionIdAsync(this OrchardRazorHelper razorHelper, string contentItemVersionId) { var contentManager = razorHelper.HttpContext.RequestServices.GetService <IContentManager>(); return(contentManager.GetVersionAsync(contentItemVersionId)); }
/// <summary> /// Loads a content item by its id. /// </summary> /// <param name="contentItemId">The content item id to load.</param> /// <param name="latest">Whether a draft should be loaded if available. <c>false</c> by default.</param> /// <example>GetContentItemByIdAsync("4xxxxxxxxxxxxxxxx")</example> /// <returns>A content item with the specific id, or <c>null</c> if it doesn't exist.</returns> public static Task <ContentItem> GetContentItemByIdAsync(this OrchardRazorHelper razorHelper, string contentItemId, bool latest = false) { var contentManager = razorHelper.HttpContext.RequestServices.GetService <IContentManager>(); return(contentManager.GetAsync(contentItemId, latest ? VersionOptions.Latest : VersionOptions.Published)); }
/// <summary> /// Returns a content item id from an alias. /// </summary> /// <param name="alias">The alias.</param> /// <example>GetContentItemIdByAliasAsync("alias:carousel")</example> /// <example>GetContentItemIdByAliasAsync("autoroute:myblog/my-blog-post")</example> /// <returns>A content item id or <c>null</c> if it was not found.</returns> public static Task <string> GetContentItemIdByAliasAsync(this OrchardRazorHelper razorHelper, string alias) { var contentAliasManager = razorHelper.HttpContext.RequestServices.GetService <IContentAliasManager>(); return(contentAliasManager.GetContentItemIdAsync(alias)); }