public async Task <ReadOnlyCollection <PollEmoji> > DoPollAsync(PollRequest request) { ReadOnlyCollection <PollEmoji> result = null; this._requests.Add(request); try { await request._tcs.Task; } catch (Exception ex) { this._client.Logger.LogError(InteractivityEvents.InteractivityPollError, ex, "Exception occurred while polling"); } finally { result = new ReadOnlyCollection <PollEmoji>(new HashSet <PollEmoji>(request._collected).ToList()); request.Dispose(); this._requests.TryRemove(request); } return(result); }
public async Task <ReadOnlyCollection <PollEmoji> > DoPollAsync(PollRequest request) { ReadOnlyCollection <PollEmoji> result = null; this._requests.Add(request); try { await request._tcs.Task; } catch (Exception ex) { this._client.DebugLogger.LogMessage(LogLevel.Error, "Interactivity", $"Something went wrong with exception {ex.GetType().Name}.", DateTime.Now); } finally { result = new ReadOnlyCollection <PollEmoji>(new HashSet <PollEmoji>(request._collected).ToList()); request.Dispose(); this._requests.TryRemove(request); } return(result); }