private async Task Poll() { string watermark = null; while (isPolling) { await Task.Delay(TimeSpan.FromSeconds(Interval)); var activities = await api.GetActivitiesAsync(conversationId, watermark); if (activities != null) { watermark = activities?.Watermark; if (activities.Activities.Count > 0) { MessageReceived?.Invoke(activities); } } } }
/// <summary> /// Get activities in this conversation. This method is paged with the /// 'watermark' parameter. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='conversationId'> /// Conversation ID /// </param> /// <param name='watermark'> /// (Optional) only returns activities newer than this watermark /// </param> public static ActivitySet GetActivities(this IConversations operations, string conversationId, string watermark = default(string)) { return(operations.GetActivitiesAsync(conversationId, watermark).GetAwaiter().GetResult()); }