Esempio n. 1
0
        /// <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))));
        }