Пример #1
0
        public ActionResult Index(ShippingZonesIndexViewModel model, PagerParameters pagerParameters)
        {
            if (!Services.Authorizer.Authorize(Permissions.OShopPermissions.ManageShopSettings, T("Not allowed to manage shipping zones")))
            {
                return(new HttpUnauthorizedResult());
            }

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

            var zones = _shippingService.GetZones();

            switch (model.Filter)
            {
            case ShippingZoneFilter.Disabled:
                zones = zones.Where(z => !z.Enabled);
                break;

            case ShippingZoneFilter.Enabled:
                zones = zones.Where(z => z.Enabled);
                break;
            }

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

            var viewModel = new ShippingZonesIndexViewModel()
            {
                Zones      = zones.Skip(pager.GetStartIndex()).Take(pager.PageSize),
                Pager      = pagerShape,
                BulkAction = ShippingZoneBulkAction.None,
                Filter     = model.Filter
            };

            return(View(viewModel));
        }
Пример #2
0
        public ActionResult IndexPOST(ShippingZonesIndexViewModel model, IEnumerable <int> itemIds, string returnUrl)
        {
            if (!Services.Authorizer.Authorize(Permissions.OShopPermissions.ManageShopSettings, T("Not allowed to manage shipping zones")))
            {
                return(new HttpUnauthorizedResult());
            }

            if (itemIds != null && model.BulkAction != ShippingZoneBulkAction.None)
            {
                int counter = 0;
                foreach (int itemId in itemIds)
                {
                    var zone = _shippingService.GetZone(itemId);
                    if (zone != null)
                    {
                        switch (model.BulkAction)
                        {
                        case ShippingZoneBulkAction.Enable:
                            zone.Enabled = true;
                            break;

                        case ShippingZoneBulkAction.Disable:
                            zone.Enabled = false;
                            break;

                        case ShippingZoneBulkAction.Remove:
                            _shippingService.DeleteZone(zone);
                            break;
                        }

                        counter++;
                    }
                }

                switch (model.BulkAction)
                {
                case ShippingZoneBulkAction.Enable:
                    Services.Notifier.Information(T.Plural("One zone successfully enabled.", "{0} zones successfully enabled.", counter));
                    break;

                case ShippingZoneBulkAction.Disable:
                    Services.Notifier.Information(T.Plural("One zone successfully disabled.", "{0} zones successfully disabled.", counter));
                    break;

                case ShippingZoneBulkAction.Remove:
                    Services.Notifier.Information(T.Plural("One zone successfully deleted.", "{0} zones successfully deleted.", counter));
                    break;
                }
            }

            return(this.RedirectLocal(returnUrl, () => RedirectToAction("Index")));
        }