コード例 #1
0
        public ActionResult Index(FormCollection input)
        {
            var viewModel = new TermAdminIndexViewModel { Terms = new List<TermEntry>(), BulkAction = new TermsAdminIndexBulkAction() };

            if (!TryUpdateModel(viewModel)) {
                return View(viewModel);
            }

            var checkedEntries = viewModel.Terms.Where(t => t.IsChecked).ToList();
            switch (viewModel.BulkAction) {
                case TermsAdminIndexBulkAction.None:
                    Services.Notifier.Information(T("No action selected."));
                    break;
                case TermsAdminIndexBulkAction.Delete:
                    if (!Services.Authorizer.Authorize(Permissions.DeleteTerm, T("Couldn't delete term")))
                        return new HttpUnauthorizedResult();

                    if(!checkedEntries.Any()) {
                        Services.Notifier.Information(T("No terms selected."));
                        break;
                    }

                    foreach (var entry in checkedEntries) {
                        var term = _taxonomyService.GetTerm(entry.Id);
                        _taxonomyService.DeleteTerm(term);
                    }

                    Services.Notifier.Information(T.Plural("{0} term has been removed.", "{0} terms have been removed.", checkedEntries.Count));

                    break;
                case TermsAdminIndexBulkAction.Merge:
                    if (!Services.Authorizer.Authorize(Permissions.ManageTerms, T("Couldn't merge term")))
                        return new HttpUnauthorizedResult();

                    return RedirectToAction("Merge", new {
                        taxonomyId = viewModel.TaxonomyId,
                        termIds = string.Join(",", checkedEntries.Select(o => o.Id))
                    });
                case TermsAdminIndexBulkAction.Move:
                    if (!Services.Authorizer.Authorize(Permissions.EditTerm, T("Couldn't move terms")))
                        return new HttpUnauthorizedResult();

                    return RedirectToAction("MoveTerm", new {
                        taxonomyId = viewModel.TaxonomyId,
                        termIds = string.Join(",", checkedEntries.Select(o => o.Id))
                    });
                default:
                    throw new ArgumentOutOfRangeException();
            }

            return RedirectToAction("Index", new { taxonomyId = viewModel.TaxonomyId });
        }
コード例 #2
0
        public ActionResult Index(FormCollection input)
        {
            var viewModel = new TermAdminIndexViewModel {
                Terms = new List <TermEntry>(), BulkAction = new TermsAdminIndexBulkAction()
            };

            if (!TryUpdateModel(viewModel))
            {
                return(View(viewModel));
            }

            IEnumerable <TermEntry> checkedEntries = viewModel.Terms.Where(t => t.IsChecked);

            switch (viewModel.BulkAction)
            {
            case TermsAdminIndexBulkAction.None:
                break;

            case TermsAdminIndexBulkAction.Delete:
                if (!Services.Authorizer.Authorize(Permissions.ManageTerms, T("Couldn't delete term")))
                {
                    return(new HttpUnauthorizedResult());
                }

                foreach (var entry in checkedEntries)
                {
                    var term = _taxonomyService.GetTerm(entry.Id);
                    _taxonomyService.DeleteTerm(term);
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            Services.Notifier.Information(T("{0} term have been removed.", checkedEntries.Count()));

            return(RedirectToAction("Index", new { taxonomyId = viewModel.TaxonomyId }));
        }