public override async Task <IDisplayResult> UpdateAsync(TagsSettings section, BuildEditorContext context)
        {
            if (context.GroupId == GroupId)
            {
                var viewModel = new TagsSettingsViewModel();
                viewModel.Tags = section.Tags;

                await context.Updater.TryUpdateModelAsync(viewModel, Prefix, t => t.Tags);

                section.Tags = viewModel.Tags;
            }
            return(await EditAsync(section, context));
        }
Beispiel #2
0
    /// <summary>
    /// Query all system tags.
    /// </summary>
    public static async Task <IEnumerable <string> > QueryAllTagsAsync(this IOrchardHelper orchardHelper)
    {
        var siteService = orchardHelper.HttpContext.RequestServices.GetService <ISiteService>();

        var siteSettings = await siteService.GetSiteSettingsAsync();

        var globalTags = siteSettings.As <TagsSettings>().Tags;

        var vm = new TagsSettingsViewModel();

        vm.Tags = globalTags;

        return(vm.TagsCollection);
    }
Beispiel #3
0
    /// <summary>
    /// Query all tagged content items by tag.
    /// </summary>
    public static async Task <IEnumerable <ContentItem> > QueryTaggedContentItemsByTagsAsync(this IOrchardHelper orchardHelper, IEnumerable <string> tags)
    {
        var contentManager = orchardHelper.HttpContext.RequestServices.GetService <IContentManager>();
        var session        = orchardHelper.HttpContext.RequestServices.GetService <ISession>();

        var contentItems = await session.Query <ContentItem, TagsPartIndex>().ListAsync();

        var filteredItems = new List <ContentItem>();

        foreach (var ci in contentItems)
        {
            var tagsString = ci.Content.TagsPart.ToObject <TagsPart>().Tags;
            var vm         = new TagsSettingsViewModel();
            vm.Tags = tagsString;

            if (vm.TagsCollection.Any(x => tags.Contains(x)))
            {
                filteredItems.Add(ci);
            }
        }

        return(filteredItems);
    }