/// <summary> /// Gets the description of a log-type from an enum /// </summary> /// <param name="action">Log-Action</param> /// <returns>Action-Description</returns> public static string GetLogDescriptionFromAction(QDLogAction action) { switch (action) { case QDLogAction.UserRegistered: return("User registered"); case QDLogAction.UserLoggedIn: return("User logged into manager"); case QDLogAction.UserLoggedInAutoStart: return("User logged in via autostart"); case QDLogAction.UserLoggedOut: return("User logged out via manager"); case QDLogAction.UserDrivelistUpdated: return("User manually updated manager drivelist"); case QDLogAction.UserChangedPassword: return("User changed password"); case QDLogAction.UserCreactedBackup: return("User created backup file"); case QDLogAction.UserLoadedBackup: return("User loaded backup file"); case QDLogAction.UserDisabledAutostart: return("User disabled QD-Autostart"); case QDLogAction.UserEnabledAutostart: return("User enabled QD-Autostart"); case QDLogAction.UserResetLocalDatabase: return("User reset local database"); case QDLogAction.DrivePrivateAdded: return("User added a private drive"); case QDLogAction.DrivePublicAdded: return("User added a public drive"); case QDLogAction.DrivePrivateEdited: return("User edited a private drive"); case QDLogAction.DrivePublicEdited: return("User edited a public drive"); case QDLogAction.DriveRemoved: return("User removed a drive"); case QDLogAction.QDDrivesDisconnect: return("Q-Drive Disconnected all netdrives"); case QDLogAction.QDDrivesConnect: return("Q-Drive Connected all netdrives"); case QDLogAction.QDDrivelistUpdated: return("Q-Drive updated drivelist in manager"); case QDLogAction.QDSystemAutostartFinished: return("Q-Drive Autostart has finished"); case QDLogAction.QDSystemAppClosed: return("Q-Drive Autostart app has been closed by user"); case QDLogAction.QDSystemDeviceShutdown: return("Q-Drive Autostart app has been closed by system (shutdown)"); } return("No description available."); }
/// <summary> /// Loggs user-actions to the online log /// </summary> /// <param name="pUserID">User-ID</param> /// <param name="pLogAction">Log Action</param> /// <param name="pDBData">DB connection data</param> /// <param name="pLogUserActionAllowed">Global flag to allow or deny the logging of data</param> public static void LogUserConnection(string pUserID, QDLogAction pLogAction, WrapMySQLData pDBData, bool pLogUserActionAllowed) { if (string.IsNullOrEmpty(pUserID)) { return; } try { using (WrapMySQL mysql = new WrapMySQL(pDBData)) { string deviceID; string deviceMac = GetMACAddress(); if (!QDLib.ManagedDBOpen(mysql)) { QDLib.DBOpenFailed(); return; } mysql.TransactionBegin(); try { // Add device to DB if it doesn't exist. Get device ID if (mysql.ExecuteScalar <int>("SELECT COUNT(*) FROM qd_devices WHERE MacAddress = ? AND LogonName = ? AND DeviceName = ?", deviceMac, Environment.UserName, Environment.MachineName) == 0) { deviceID = Guid.NewGuid().ToString(); mysql.ExecuteNonQuery("INSERT INTO qd_devices (ID, MacAddress, LogonName, DeviceName) VALUES (?,?,?,?)", deviceID, deviceMac, Environment.UserName, Environment.MachineName ); } else { deviceID = mysql.ExecuteScalar <string>("SELECT ID FROM qd_devices WHERE MacAddress = ? AND LogonName = ? AND DeviceName = ?", deviceMac, Environment.UserName, Environment.MachineName); } // Log device action. if (pLogUserActionAllowed) { mysql.ExecuteNonQuery("INSERT INTO qd_conlog (ID, UserID, DeviceID, LogTime, LogAction) VALUES (?,?,?, NOW() ,?)", Guid.NewGuid(), pUserID, deviceID, pLogAction ); } mysql.TransactionCommit(); } catch { mysql.TransactionRollback(); } mysql.Close(); } } catch { } }