Ejemplo n.º 1
0
        /// <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.");
        }
Ejemplo n.º 2
0
        /// <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 { }
        }