internal bool RequestReady(int maxRequests = 60) { if (Requests.Count < maxRequests) { return(true); } else { while (Requests.Count > 0) { // As I understand, the general rule is 60 requests per minute. --Kris if (Requests[0].AddMinutes(1) < DateTime.Now) { Requests.RemoveAt(0); } else { break; } } RequestsUpdateEventArgs args = new RequestsUpdateEventArgs { Requests = Requests }; OnRequestsUpdated(args); return(Requests.Count < maxRequests); } }
private void AddRequest() { Requests.Add(DateTime.Now); RequestsUpdateEventArgs args = new RequestsUpdateEventArgs { Requests = Requests }; OnRequestsUpdated(args); }
/// <summary> /// Keep track of requests across all models. /// </summary> /// <param name="sender">The sender</param> /// <param name="e">A valid RequestsUpdateEventArgs instance</param> public void C_RequestsUpdated(object sender, RequestsUpdateEventArgs e) { Account.UpdateRequests(e.Requests); Emoji.UpdateRequests(e.Requests); Flair.UpdateRequests(e.Requests); LinksAndComments.UpdateRequests(e.Requests); Listings.UpdateRequests(e.Requests); LiveThreads.UpdateRequests(e.Requests); Misc.UpdateRequests(e.Requests); Moderation.UpdateRequests(e.Requests); Modmail.UpdateRequests(e.Requests); Multis.UpdateRequests(e.Requests); PrivateMessages.UpdateRequests(e.Requests); RedditGold.UpdateRequests(e.Requests); Search.UpdateRequests(e.Requests); Subreddits.UpdateRequests(e.Requests); Users.UpdateRequests(e.Requests); Widgets.UpdateRequests(e.Requests); Wiki.UpdateRequests(e.Requests); }
protected virtual void OnRequestsUpdated(RequestsUpdateEventArgs e) { RequestsUpdated?.Invoke(this, e); }