private MessageRun SendMessage(ScheduledMessage scheduledMessage) { var messageRun = new MessageRun() { MessageRunGuid = Guid.NewGuid(), SentSuccessfully = true, SendAttemptTime = DateTime.UtcNow, ScheduledMessageGuid = scheduledMessage.ScheduledMessageGuid }; try { var publisher = new MessagePublisher(_host, scheduledMessage.Message.Exchange); publisher.Publish(scheduledMessage.Message.Body, scheduledMessage.Message.RoutingKey, scheduledMessage.Message.Headers); } catch (Exception ex) { messageRun.SentSuccessfully = false; messageRun.MessageRunError = new MessageRunError() { Error = ex.ToString(), MessageRunGuid = messageRun.MessageRunGuid }; } return(messageRun); }
public void LogMessageRun(MessageRun messageRun) { using (var conn = new SqlConnection(_connectionString)) { var parameters = new { MessageRunGuid = messageRun.MessageRunGuid, ScheduledMessageGuid = messageRun.ScheduledMessageGuid, SendAttemptTime = messageRun.SendAttemptTime, SendSuccessfully = messageRun.SentSuccessfully }; conn.Execute(SchedulingQueries.InsertMessageRun, parameters); if (messageRun.MessageRunError != null) { var errorParameters = new { MessageRunGuid = messageRun.MessageRunGuid, Error = messageRun.MessageRunError.Error }; conn.Execute(SchedulingQueries.InsertMessageRunError, errorParameters); } } }