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 }); }
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 })); }