public async Task SendWebHookWorkItemsAsync(IEnumerable<WebHookWorkItem> workItems)
{
if (workItems == null)
{
throw new ArgumentNullException(nameof(workItems));
}
// Serialize WebHook requests and convert to queue messages
IEnumerable<CloudQueueMessage> messages = null;
try
{
messages = workItems.Select(item =>
{
string content = JsonConvert.SerializeObject(item, _serializerSettings);
CloudQueueMessage message = new CloudQueueMessage(content);
return message;
}).ToArray();
}
catch (Exception ex)
{
string msg = string.Format(CultureInfo.CurrentCulture, AzureStorageResources.AzureSender_SerializeFailure, ex.Message);
_logger.Error(msg, ex);
throw new InvalidOperationException(msg);
}
// Insert queue messages into queue.
CloudQueue queue = _manager.GetCloudQueue(_connectionString, WebHookQueue);
await _manager.AddMessagesAsync(queue, messages);
}
}