public async Task <IActionResult> Acknowledge([FromRoute] string username, [FromRoute] int id) { Tracker.Conversations.TryGetValue(username, out var conversation); if (conversation == default || !conversation.Any(p => p.Id == id)) { return(NotFound()); } await Client.AcknowledgePrivateMessageAsync(id); return(StatusCode(200)); }
public async Task <IActionResult> AcknowledgeAll([FromRoute] string username) { Tracker.Conversations.TryGetValue(username, out var conversation); if (conversation == default) { return(NotFound()); } var tasks = new List <Task>(); foreach (var message in conversation.Where(p => !p.Acknowledged)) { tasks.Add(Task.Run(async() => { await Client.AcknowledgePrivateMessageAsync(message.Id); message.Acknowledged = true; })); } await Task.WhenAll(tasks); return(StatusCode(200)); }