Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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"));
        }