namespace FrameworkDAL.Query.UserLogin
{
public static class LoggedInUsersDashboardQB
{
///
/// Returns all active sessions from MSESSIONSTORE (GB5 system DB).
/// ISACTIVE = 0 means the session is active (matched by the insert default).
/// SQL Server variant — datetime formatted as ISO-8601 string for UserEventLogDTO.
///
public const string GET_LOGGED_IN_USERS_SQL = @"
SELECT
ss.USERID AS UserId,
ss.USERCODE AS UserCode,
ss.USERNAME AS UserName,
ss.MACHINEIP AS MachineIp,
ss.LOGINEVENTLOGID AS EventLogId,
0 AS ModeOfWorking,
'' AS TargetDatabase,
CONVERT(VARCHAR(23), ss.LOGINTIME, 121) AS StartTime,
CONVERT(VARCHAR(23), ss.LASTLOGINUSEDTIME, 121) AS LastUsedTime,
0 AS TempModeofWorking,
CAST(0 AS BIT) AS AutoLogOut
FROM MSESSIONSTORE ss
WHERE ss.ISACTIVE = 0
ORDER BY ss.LOGINTIME DESC;";
///
/// PostgreSQL variant of the same query.
///
public const string GET_LOGGED_IN_USERS_POSTGRESQL = @"
SELECT
ss.userid AS ""UserId"",
ss.usercode AS ""UserCode"",
ss.username AS ""UserName"",
ss.machineip AS ""MachineIp"",
ss.logineventlogid AS ""EventLogId"",
0 AS ""ModeOfWorking"",
'' AS ""TargetDatabase"",
TO_CHAR(ss.logintime, 'YYYY-MM-DD HH24:MI:SS') AS ""StartTime"",
TO_CHAR(ss.lastloginusedtime, 'YYYY-MM-DD HH24:MI:SS') AS ""LastUsedTime"",
0 AS ""TempModeofWorking"",
false AS ""AutoLogOut""
FROM msessionstore ss
WHERE ss.isactive = 0
ORDER BY ss.logintime DESC;";
}
}