public override void Invoke() { if ((Execute || ExecuteOnLoad && Wrapper.LoadedFrame) && !WasExecuted(Wrapper.BrowserId)) { OnBeforeExecute?.Invoke(this, Wrapper); Operation(Wrapper); Executed.UpdateGeneric(Wrapper.BrowserId, true); OnAfterExecute?.Invoke(this, Wrapper); } }
/// <summary> /// Executes a task /// </summary> public virtual void Execute() { OnBeforeExecute?.Invoke(this, new EventArgs()); const int maxTries = 3; var queuedEmails = _queuedEmailService.SearchEmails(null, null, null, null, true, true, maxTries, false, 0, 500); foreach (var queuedEmail in queuedEmails) { var bcc = string.IsNullOrWhiteSpace(queuedEmail.Bcc) ? null : queuedEmail.Bcc.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); var cc = string.IsNullOrWhiteSpace(queuedEmail.CC) ? null : queuedEmail.CC.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); try { _emailSender.SendEmail(_emailAccountService.GetEmailAccountById(queuedEmail.EmailAccountId), queuedEmail.Subject, queuedEmail.Body, queuedEmail.From, queuedEmail.FromName, queuedEmail.To, queuedEmail.ToName, queuedEmail.ReplyTo, queuedEmail.ReplyToName, bcc, cc); queuedEmail.SentOnUtc = DateTime.UtcNow; } catch (Exception exc) { _logger.Error($"Error sending e-mail. {exc.Message}", exc); } finally { queuedEmail.SentTries += 1; _queuedEmailService.UpdateQueuedEmail(queuedEmail); } } OnAfterExecute?.Invoke(this, new EventArgs()); }