/// <inheritdoc /> public Task SendAsync(MailMessage message) { var data = new Dictionary <string, object>(); bool cancel = false; // Run pre process interceptors. foreach (var interceptor in interceptors) { interceptor.Sending(message, data, ref cancel); if (cancel) { #if NET452 var tcs = new TaskCompletionSource <bool>(); tcs.SetResult(true); return(tcs.Task); #else return(Task.CompletedTask); #endif } } // Send email and run post process interceptors. return(ExecutionStrategy.Execute(Process, message, data, CancellationToken).ContinueWith(task => { if (!task.IsFaulted) { foreach (var interceptor in interceptors) { interceptor.Sent(message, data); } } }, CancellationToken)); }
/// <inheritdoc /> public Task Send(MailMessage message) { var data = new Dictionary <string, object>(); bool cancel = false; // run pre process interceptors foreach (var interceptor in interceptors) { interceptor.Sending(message, data, ref cancel); if (cancel) { return(Task.CompletedTask); } } // send email and run post process interceptors return(ExecutionStrategy.Execute(Process, message, data, CancellationToken).ContinueWith((task) => { if (task.IsFaulted == false) { foreach (var interceptor in interceptors) { interceptor.Sent(message, data); } } })); }
/// <summary> /// Receive an envelope for executing. /// </summary> internal override bool Receive(Envelope envelope) { ExecutionStrategy executionStrategy = _executionStrategy; if (executionStrategy != null) { executionStrategy.Execute(envelope); } RaiseEnvelopeReceivedEvent(envelope); return(true); }