Exemplo n.º 1
0
        public ActionResult Index(FormCollection input)
        {
            if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not authorized to manage rules")))
            {
                return(new HttpUnauthorizedResult());
            }

            var viewModel = new RulesIndexViewModel {
                Rules = new List <RulesEntry>(), Options = new RulesIndexOptions()
            };

            UpdateModel(viewModel);

            var checkedEntries = viewModel.Rules.Where(c => c.IsChecked);

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

            case RulesBulkAction.Enable:
                foreach (var entry in checkedEntries)
                {
                    _repository.Get(entry.RuleId).Enabled = true;
                }
                break;

            case RulesBulkAction.Disable:
                foreach (var entry in checkedEntries)
                {
                    _repository.Get(entry.RuleId).Enabled = false;
                }
                break;

            case RulesBulkAction.Delete:
                foreach (var entry in checkedEntries)
                {
                    var rule = _rulesServices.GetRule(entry.RuleId);

                    if (rule != null)
                    {
                        _repository.Delete(rule);
                    }
                }
                break;
            }

            return(RedirectToAction("Index"));
        }
Exemplo n.º 2
0
        public ActionResult Index(RulesIndexOptions options, PagerParameters pagerParameters)
        {
            if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not authorized to list rules")))
            {
                return(new HttpUnauthorizedResult());
            }

            var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters);

            // default options
            if (options == null)
            {
                options = new RulesIndexOptions();
            }

            var rules = _rulesServices.GetRules();

            switch (options.Filter)
            {
            case RulesFilter.Disabled:
                rules = rules.Where(r => r.Enabled == false);
                break;

            case RulesFilter.Enabled:
                rules = rules.Where(u => u.Enabled);
                break;
            }

            if (!String.IsNullOrWhiteSpace(options.Search))
            {
                rules = rules.Where(r => r.Name.Contains(options.Search));
            }

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

            switch (options.Order)
            {
            case RulesOrder.Name:
                rules = rules.OrderBy(u => u.Name);
                break;
            }

            var results = rules
                          .Skip(pager.GetStartIndex())
                          .Take(pager.PageSize)
                          .ToList();

            var model = new RulesIndexViewModel {
                Rules = results.Select(x => new RulesEntry {
                    Rule      = x,
                    IsChecked = false,
                    RuleId    = x.Id
                }).ToList(),
                Options = options,
                Pager   = pagerShape
            };

            // maintain previous route data when generating page links
            var routeData = new RouteData();

            routeData.Values.Add("Options.Filter", options.Filter);
            routeData.Values.Add("Options.Search", options.Search);
            routeData.Values.Add("Options.Order", options.Order);

            pagerShape.RouteData(routeData);

            return(View(model));
        }