public static void CollectStats(HttpListenerContext Context, string Query) { try { var Request = new iRequest() { Endpoint = Context.Request.RemoteEndPoint.ToString(), Headers = ToDictionary(Context.Request.Headers), Referer = Context.Request.UrlReferrer, URI = Context.Request.Url, UserAgent = Context.Request.UserAgent, UserLanguages = Context.Request.UserLanguages }; var Stat = new Stat() { Request = Request, Query = Query }; while (LastQueries.Count > 3) { LastQueries.RemoveAt(0); } if (Query != "/" && !string.IsNullOrWhiteSpace(Query)) { string ShowQ = Query; if (!LastQueries.Contains(CultureInfo.CurrentCulture.TextInfo.ToTitleCase(ShowQ))) { LastQueries.Add(CultureInfo.CurrentCulture.TextInfo.ToTitleCase(ShowQ)); } } Zorro.MongoDB.SendStat(Stat); } catch { } }
protected virtual void RegisterForCooldown() { if (!Config.MaxCallsPerMinute.HasValue) { return; } lock (LastQueries) { LastQueries.Add(DateTimeOffset.UtcNow); } }