Exemplo n.º 1
0
        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);
            }
        }