public void StartListening()
{
if (string.IsNullOrWhiteSpace(conversationProvider?.ConversationId) || conversationProvider.ConversationClient == null) return;
Task.Run(async () =>
{
while (true)
{
var messagesResponse = await conversationProvider.ConversationClient.Conversations.GetMessagesWithOperationResponseAsync(conversationProvider.ConversationId, messageReceivedWatermark);
if (messagesResponse?.Body?.Messages?.Any() ?? false)
{
messageReceivedWatermark = messagesResponse.Body.Watermark;
foreach (var message in messagesResponse.Body.Messages)
{
MessageReceived?.Invoke(this, message);
}
}
await Task.Delay(500);
}
});
}
}