From 8b343f3cfc732b069233076e0bd31ed9a8ff60ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n=20Alazorza?= Date: Thu, 2 Feb 2017 21:17:08 +0100 Subject: [PATCH] Avoid deleting terms twice just getting the root terms on DeleteTaxonomy method (#7553) --- .../Orchard.Taxonomies/Services/ITaxonomyService.cs | 1 + .../Orchard.Taxonomies/Services/TaxonomyService.cs | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/Services/ITaxonomyService.cs b/src/Orchard.Web/Modules/Orchard.Taxonomies/Services/ITaxonomyService.cs index 7ed74a8ef..a8da7e4c8 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/Services/ITaxonomyService.cs +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/Services/ITaxonomyService.cs @@ -41,6 +41,7 @@ namespace Orchard.Taxonomies.Services { IEnumerable GetTerms(int taxonomyId); + IEnumerable GetRootTerms(int taxonomyId); int GetTermsCount(int taxonomyId); TermPart GetTerm(int id); TermPart GetTermByName(int taxonomyId, string name); diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/Services/TaxonomyService.cs b/src/Orchard.Web/Modules/Orchard.Taxonomies/Services/TaxonomyService.cs index f4ff87d11..89802a07f 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/Services/TaxonomyService.cs +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/Services/TaxonomyService.cs @@ -117,7 +117,7 @@ namespace Orchard.Taxonomies.Services { _contentManager.Remove(taxonomy.ContentItem); // Removing terms - foreach (var term in GetTerms(taxonomy.Id)) { + foreach (var term in GetRootTerms(taxonomy.Id)) { DeleteTerm(term); } @@ -171,6 +171,14 @@ namespace Orchard.Taxonomies.Services { return TermPart.Sort(result); } + public IEnumerable GetRootTerms(int taxonomyId) { + var result = _contentManager.Query() + .Where(x => x.TaxonomyId == taxonomyId && x.Path == "/") + .List(); + + return TermPart.Sort(result); + } + public TermPart GetTermByPath(string path) { return _contentManager.Query() .Join()