private void PrepareAndSend(string type, Dictionary <string, string> properties, MessageContext context) { try { if (properties != null) { foreach (var key in properties.Keys) { context.Properties.Add(key, properties[key]); } } _messageEventHandler.Sending(context); foreach (var channel in _channels) { channel.SendMessage(context); } _messageEventHandler.Sent(context); } finally { context.MailMessage.Dispose(); } Logger.Information("Message {0} sent", type); }
public void Send(string recipient, string type, string service, Dictionary <string, string> properties = null) { if (!HasChannels()) { return; } Logger.Info("Sending message {0}", type); try { var context = new MessageContext { Recipient = recipient, Type = type, Service = service }; try { if (properties != null) { foreach (var key in properties.Keys) { context.Properties.Add(key, properties[key]); } } _messageEventHandler.Sending(context); foreach (var channel in _channels) { channel.SendMessage(context); } _messageEventHandler.Sent(context); } finally { context.MailMessage.Dispose(); } Logger.Info("Message {0} sent", type); } catch (Exception e) { Logger.Error(e, "An error occured while sending the message {0}", type); } }