Exemple #1
0
        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 });
        }