public async Task <ActionResult> SendNow(QueuedEmailModel queuedEmailModel)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageMessageQueue))
            {
                return(AccessDeniedView());
            }

            var queuedEmail = _queuedEmailService.GetQueuedEmailById(queuedEmailModel.Id);

            if (queuedEmail == null)
            {
                return(RedirectToAction("List"));
            }

            var result = await _queuedEmailService.SendEmailAsync(queuedEmail);

            if (result)
            {
                NotifySuccess(_localizationService.GetResource("Admin.Common.TaskSuccessfullyProcessed"));
            }
            else
            {
                NotifyError(_localizationService.GetResource("Common.Error.SendMail"));
            }

            return(RedirectToAction("Edit", queuedEmail.Id));
        }
        public override async Task ExecuteAsync(TaskExecutionContext ctx)
        {
            const int pageSize = 1000;
            const int maxTries = 3;

            for (int i = 0; i < 9999999; ++i)
            {
                var q = new SearchEmailsQuery
                {
                    MaxSendTries = maxTries,
                    PageIndex    = i,
                    PageSize     = pageSize,
                    Expand       = "Attachments",
                    UnsentOnly   = true,
                    SendManually = false
                };

                var queuedEmails = await _queuedEmailService.SearchEmails(q).LoadAsync();

                foreach (var queuedEmail in queuedEmails)
                {
                    await _queuedEmailService.SendEmailAsync(queuedEmail);
                }

                if (!queuedEmails.HasNextPage)
                {
                    break;
                }
            }
        }
        public async Task <ActionResult> SendNow(QueuedEmailModel queuedEmailModel)
        {
            var queuedEmail = _queuedEmailService.GetQueuedEmailById(queuedEmailModel.Id);

            if (queuedEmail == null)
            {
                return(RedirectToAction("List"));
            }

            var result = await _queuedEmailService.SendEmailAsync(queuedEmail);

            if (result)
            {
                NotifySuccess(T("Admin.Common.TaskSuccessfullyProcessed"));
            }
            else
            {
                NotifyError(T("Common.Error.SendMail"));
            }

            return(RedirectToAction("Edit", queuedEmail.Id));
        }