diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/Controllers/TagsController.cs b/src/Orchard.Web/Modules/Orchard.Taxonomies/Controllers/TagsController.cs index bc1d929f3..98b14f45b 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/Controllers/TagsController.cs +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/Controllers/TagsController.cs @@ -36,19 +36,23 @@ namespace Orchard.Taxonomies.Controllers { if (!_authorizer.Authorize(StandardPermissions.AccessAdminPanel)) { throw new UnauthorizedAccessException("Can't access the admin"); } - if (string.IsNullOrEmpty(query)) return new List(); var allTerms = leavesOnly ? _taxonomyService.GetTerms(taxonomyId).ToList() : new List(); + var matchingTerms = _contentManager.Query() .Where(t => t.TaxonomyId == taxonomyId) - .Join() - .Where(r => r.Title.Contains(query)) - .List() - .Select(t => BuildTag(t, leavesOnly, allTerms)) - .OrderBy(t => t.Label) - .ToList(); - return matchingTerms; + .Join(); + + if (!string.IsNullOrEmpty(query)) + matchingTerms = matchingTerms.Where(r => r.Title.Contains(query)); + + var resultingTerms = matchingTerms.List() + .Select(t => BuildTag(t, leavesOnly, allTerms)) + .OrderBy(t => t.Label) + .ToList(); + + return resultingTerms; } private static Tag BuildTag(TermPart term, bool leavesOnly, IEnumerable terms) {