public ActionResult ListOperation(int containerId, ListOperation operation, SortBy? sortBy, SortDirection? sortByDirection, PagerParameters pagerParameters) { var items = _containerService.GetContentItems(containerId, VersionOptions.Latest).Select(x => x.As<ContainablePart>()); switch (operation) { case ViewModels.ListOperation.Reverse: _containerService.Reverse(items); _services.Notifier.Information(T("The list has been reversed.")); break; case ViewModels.ListOperation.Shuffle: _containerService.Shuffle(items); _services.Notifier.Information(T("The list has been shuffled.")); break; case ViewModels.ListOperation.Sort: _containerService.Sort(items, sortBy.GetValueOrDefault(), sortByDirection.GetValueOrDefault()); _services.Notifier.Information(T("The list has been sorted.")); break; default: _services.Notifier.Error(T("Please select an operation to perform on the list.")); break; } return RedirectToAction("List", new {containerId, page = pagerParameters.Page, pageSize = pagerParameters.PageSize}); }