public async Task<Message> GetMessageToDeliverAsync()
{
using (var sqlConnection = new MySqlConnection(_connectionString))
{
sqlConnection.Open();
// TODO: MessageNextTryTime should be included in SQL
var messages =
await sqlConnection.QueryAsync<Message>("SELECT * FROM hm_messages WHERE messagetype = 1 AND messagelocked = 0 LIMIT 1");
var message = messages.SingleOrDefault();
if (message != null)
{
var recipients = await sqlConnection.QueryAsync<Recipient>(
"SELECT * FROM hm_messagerecipients where recipientmessageid = @recipientmessageid",
new
{
recipientmessageid = message.Id
});
foreach (var recipient in recipients)
message.Recipients.Add(recipient);
}
return message;
}
}