Exemplo n.º 1
0
        public async Task SendAsync(OperationContext context, NotificationMessage message)
        {
            Util.CheckNotEmpty(message.Recipients, "Recipient(s) not specified.");
            try {
                var session = context.OpenSystemSession();
                var subject = message.GetString("Subject") ?? GetTemplatedValue(session, message, "Subject");
                var body    = message.GetString("Body") ?? GetTemplatedValue(session, message, "Body");
                Util.CheckNotEmpty(message.From, "Email From address not specified in message.");
                Util.CheckNotEmpty(subject, "Subject not specified or Subject template '{0}.Subject' not found.", message.Type);
                Util.CheckNotEmpty(body, "Email body not specified or Body template '{0}.Body' not found.", message.Type);
                message.Body = body;
                if (message.Status == MessageStatus.Blocked)
                {
                    return;
                }
                message.Status = MessageStatus.Sending;
                var mail = new MailMessage(message.From, message.Recipients, subject, body);
                await _smtpService.SendAsync(context, mail);

                message.Status = MessageStatus.Sent;
            } catch (Exception ex) {
                message.Status = MessageStatus.Error;
                message.Error  = ex.ToLogString();
            }
        }