예제 #1
0
        public ActionResult Index(int taxonomyId, PagerParameters pagerParameters)
        {
            var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);

            var taxonomy = _taxonomyService.GetTaxonomy(taxonomyId);

            var allTerms = _taxonomyService.GetTermsQuery(taxonomyId).OrderBy(x => x.FullWeight);

            var totalItemCount = allTerms.Count();

            var termsPage = pager.PageSize > 0 ? allTerms.Slice(pager.GetStartIndex(), pager.PageSize) : allTerms.Slice(0, 0);

            var pagerShape = Shape.Pager(pager).TotalItemCount(totalItemCount);

            var entries = termsPage
                          .Select(term => term.CreateTermEntry())
                          .ToList();

            var model = new TermAdminIndexViewModel {
                Terms      = entries,
                Taxonomy   = taxonomy,
                TaxonomyId = taxonomyId,
                Pager      = pagerShape
            };

            return(View(model));
        }
예제 #2
0
        public ActionResult Index(int taxonomyId, PagerParameters pagerParameters)
        {
            var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);

            var taxonomy = _taxonomyService.GetTaxonomy(taxonomyId);

            var allTerms = TermPart.Sort(_taxonomyService.GetTermsQuery(taxonomyId).List());

            var termsPage = pager.PageSize > 0 ? allTerms.Skip(pager.GetStartIndex()).Take(pager.PageSize) : allTerms;

            var pagerShape = Shape.Pager(pager).TotalItemCount(allTerms.Count());

            var entries = termsPage
                    .Select(term => term.CreateTermEntry())
                    .ToList();

            var model = new TermAdminIndexViewModel {
                Terms = entries,
                Taxonomy = taxonomy,
                TaxonomyId = taxonomyId,
                Pager = pagerShape
            };

            return View(model);
        }
예제 #3
0
        public ActionResult Index(int taxonomyId)
        {
            var taxonomy = _taxonomyService.GetTaxonomy(taxonomyId);
            var terms    = _taxonomyService.GetTerms(taxonomyId);
            var entries  = terms.Select(term => term.CreateTermEntry()).ToList();
            var model    = new TermAdminIndexViewModel {
                Terms = entries, Taxonomy = taxonomy, TaxonomyId = taxonomyId
            };

            return(View(model));
        }
예제 #4
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 });
        }
예제 #5
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 }));
        }