/// <summary> /// Gets the most active users in the log in last n days /// </summary> /// <param name="amount">The maximum number of users to retrieve</param> /// <param name="daysBack">How many days back in the log to look</param> /// <returns>A page of Umbraco users</returns> public Page <BasicUser> GetMostActiveUsers(int amount = 10, int daysBack = -30) { string sql = @"SELECT U.id, U.userName, Count(u.Id) as UserCount FROM umbracoLog L LEFT JOIN umbracoUser U ON L.userId = U.id WHERE L.DateStamp > @0 GROUP BY U.userName, U.id "; if (db.GetDatabaseProvider() == DatabaseProviders.SqlServerCE) { sql += "ORDER BY UserCount DESC"; } else { sql += "ORDER BY Count(u.Id) DESC"; } return(db.Page <BasicUser>(1, amount, new Sql(sql, DateTime.Today.AddDays(daysBack)))); }