Ejemplo n.º 1
0
            //public static UserActivityStats Generate(Dictionary<string, List<Tuple<DateTime, string>>> _UsersOnSite)
            //{
            //    var startTime = DateTime.Now;
            //    UserActivityStats userActivity = new UserActivityStats();
            //    foreach (var interval in g_DefinedIntervals)
            //    {
            //        DateTime comparerValue = DateTime.Now.Subtract(interval.Value);
            //        userActivity.m_Stats.Add(interval.Key, _UsersOnSite.Where((_Value) => { return _Value.Value.Last().Item1 > comparerValue; }).Count());
            //    }

            //    userActivity.m_Stats.Add(IntervalStat.Total, _UsersOnSite.Count);

            //    Logger.ConsoleWriteLine("Took " + (DateTime.Now - startTime).TotalSeconds.ToStringDot("0.0") + " seconds to generate UserActivityStats");
            //    return userActivity;
            //}
            public static UserActivityStats Generate()
            {
                var startTime = DateTime.Now;
                UserActivityStats userActivity = new UserActivityStats();

                return(userActivity);

                //TODO: This code below took 20 seconds etc freezing the entire webservice. FIX THE PROBLEM IN THE FUTURE
                try
                {
                    foreach (var interval in g_DefinedIntervals)
                    {
                        DateTime comparerValue = DateTime.Now.Subtract(interval.Value);
                        userActivity.m_Stats.Add(interval.Key, (int)UserActivityDB.GetUniqueVisitCountsSince(comparerValue));
                    }

                    userActivity.m_Stats.Add(IntervalStat.Total, (int)UserActivityDB.GetTotalUniqueVisitors());

                    Logger.ConsoleWriteLine("Took " + (DateTime.Now - startTime).TotalSeconds.ToStringDot("0.0") + " seconds to generate UserActivityStats");
                }
                catch (Exception ex)
                {
                    Logger.LogException(ex);
                }
                return(userActivity);
            }
Ejemplo n.º 2
0
            public UserActivityStats GetUserActivityStats()
            {
                return(null);//Currently Disabled

                UserActivityStats stats = DynamicReloader.GetData <UserActivityStats>(() =>
                {
                    lock (m_RealmPlayersMutex)
                    {
                        return(UserActivityStats.Generate());
                    }
                }, (_UserActivityStats, _LastLoadTime) => { return((DateTime.UtcNow - _LastLoadTime).TotalMinutes > 5); }, TimeSpan.FromMinutes(5), true);

                return(stats);
            }