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)); }
/// <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); }
/// <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); }