private ActionResult GetRecipientListViewResult(IEnumerable <ContentItem> recipientLists, int page = 1, int pageSize = DefaultPageSizeForRecipientLists) { var viewModel = new RecipientListsViewModel(); if (recipientLists.Any()) { var pagerParameters = pageSize == 0 ? new PagerParameters { Page = page, PageSize = null } : new PagerParameters { Page = page, PageSize = pageSize }; var pager = new Pager(_orchardServices.WorkContext.CurrentSite, pagerParameters); dynamic pagerShape = _orchardServices.New.Pager(pager).TotalItemCount(recipientLists.Count()); var recipientListEntryItems = new List <RecipientListEntry>(); recipientListEntryItems.AddRange(recipientLists .Skip(pager.GetStartIndex()) .Take(pager.PageSize) .Select(item => new RecipientListEntry { Title = item.As <TitlePart>().Title, IsChecked = false, Id = item.Id, ContentItem = item })); viewModel.RecipientListEntries = recipientListEntryItems; viewModel.Pager = pagerShape; } return(View("ManageRecipientLists", viewModel)); }
public ActionResult FilterRecipientLists(RecipientListsViewModel viewModel) { if (!_orchardServices.Authorizer.Authorize(Permissions.ManageNotifications)) { return(new HttpUnauthorizedResult(T("You are not allowed to manage notifications.").Text)); } var recipientListItems = _recipientListService.GetOrderedRecipientLists(viewModel.RecipientListSortBy); return(GetRecipientListViewResult(recipientListItems, 1, viewModel.PageSize)); }
public ActionResult ManageRecepientListsBulkAction(RecipientListsViewModel viewModel) { if (!_orchardServices.Authorizer.Authorize(Permissions.ManageNotifications)) { return(new HttpUnauthorizedResult(T("You are not allowed to manage notifications.").Text)); } var selectedEntries = viewModel.RecipientListEntries.Where(entry => entry.IsChecked); if (selectedEntries.Any()) { switch (viewModel.RecipientListBulkAction) { case RecipientListBulkAction.None: break; case RecipientListBulkAction.Delete: { foreach (var entryItem in selectedEntries) { _contentManager.Remove(_contentManager.Get(entryItem.Id)); } _orchardServices.Notifier.Add(NotifyType.Information, T("Items were successfully removed.")); } break; default: throw new ArgumentOutOfRangeException(); } } else { _orchardServices.Notifier.Add(NotifyType.Warning, T("Select a recipient list first.")); } return(RedirectToAction("ManageRecipientLists")); }