//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); }
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); }