public void MovingTerms(MoveTermsContext context) { bool termsRemoved = false; if (context.ParentTerm != null) { if (context.ParentTerm.Has <LocalizationPart>()) { var parentTermCulture = context.ParentTerm.As <LocalizationPart>().Culture; for (int i = context.Terms.Count() - 1; i >= 0; i--) { if (context.Terms[i].Has <LocalizationPart>()) { var termCulture = context.Terms[i].As <LocalizationPart>().Culture; if (termCulture != null && termCulture != parentTermCulture) { context.Terms.RemoveAt(i); termsRemoved = true; } } } } } if (termsRemoved) { _notifier.Warning(T("Some terms were not moved because their culture was different from the culture of the selected parent.")); } }
public ActionResult MoveTerm(int taxonomyId, int selectedTermId, string termIds) { if (!Services.Authorizer.Authorize(Permissions.EditTerm, T("Not allowed to move terms"))) return new HttpUnauthorizedResult(); MoveTermsContext context = new MoveTermsContext(); context.Terms = ResolveTermIds(termIds); context.ParentTerm = _taxonomyService.GetTerm(selectedTermId); _termLocalizationEventHandler.MovingTerms(context); var taxonomy = _taxonomyService.GetTaxonomy(taxonomyId); var parentTerm = _taxonomyService.GetTerm(selectedTermId); var terms = context.Terms; foreach (var term in terms) { _taxonomyService.MoveTerm(taxonomy, term, parentTerm); } return RedirectToAction("Index", new { taxonomyId }); }