diff --git a/src/KPI Generator/Reportings/User/UserReporting.cs b/src/KPI Generator/Reportings/User/UserReporting.cs index 43c8b55e9ac649fc7f7ce63e8f2f472144e989f0..ab3e4ddbf58e38799d3dbd352487b17217caadb6 100644 --- a/src/KPI Generator/Reportings/User/UserReporting.cs +++ b/src/KPI Generator/Reportings/User/UserReporting.cs @@ -274,11 +274,14 @@ public class UserReporting : Reporting<UserReportingOptions> private DateTime? GetLatestActivity(Guid id) { - /* - * TODO: Query may take ages to execute and can lead to timeouts. Make sure to create an index! - * CREATE INDEX log_idx_userid_loglevel_servertime ON Coscine.dbo.Log (UserId, LogLevel, ServerTimestamp); - */ - var latestLog = _logModel.GetAllWhere(l => l.LogLevel.Equals("Analytics") && l.UserId.Equals(id)).OrderByDescending(a => a.ServerTimestamp).FirstOrDefault(); + var today = DateTime.Today; + var latestLog = _logModel + .GetAllWhere(l => + l.LogLevel.Equals("Analytics") + && l.UserId.Equals(id) + && l.ServerTimestamp < today) + .OrderByDescending(a => a.ServerTimestamp) + .FirstOrDefault(); if (latestLog is not null) { return latestLog.ServerTimestamp;