Ejemplo n.º 1
0
        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 { }
        }
Ejemplo n.º 2
0
        protected virtual void RegisterForCooldown()
        {
            if (!Config.MaxCallsPerMinute.HasValue)
            {
                return;
            }

            lock (LastQueries)
            {
                LastQueries.Add(DateTimeOffset.UtcNow);
            }
        }