/// <summary> /// Monitor inbox for new unread messages. /// </summary> /// <param name="messages">PrivateMessages instance</param> /// <param name="from">Sender's username</param> /// <param name="subject">Message subject</param> /// <param name="body">Message body</param> /// <param name="timeoutMs">How long to wait for the message to arrive before giving up</param> /// <returns>Whether the requested message was found.</returns> private bool MonitorForMessage(PrivateMessages messages, string from, string subject, string body, int timeoutMs = 30000) { messages.MonitorUnread(); messages.UnreadUpdated += C_UnreadMessagesUpdated; DateTime start = DateTime.Now; bool res = false; while (!res && start.AddMilliseconds(timeoutMs) > DateTime.Now) { if (E != null) { res = CheckMessages(E.NewMessages, from, subject, body); } } messages.UnreadUpdated -= C_UnreadMessagesUpdated; messages.MonitorUnread(); return(res); }
// This method deals with https://github.com/sirkris/Reddit.NET/issues/105 private void MonitorUnreadMessages(PrivateMessages messages) { messages.MonitorUnread(); messages.UnreadUpdated += InvokeUnreadUpdatedEvent; }