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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        /// <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>()));
 }
Exemplo n.º 7
0
        /// <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));
        }
Exemplo n.º 8
0
        /// <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));
        }
Exemplo n.º 9
0
        /// <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));
        }