示例#1
0
        private void LogSuccessfulObfuscation(DatabaseImplementation anonDb, string windowsActivityTable, int res)
        {
            var logMsg = string.Format(CultureInfo.InvariantCulture, "Successfully obfucscated table '{0}' with {1} entries.", windowsActivityTable, res);

            anonDb.LogInfo(logMsg);
            Database.GetInstance().LogInfo(logMsg);
        }
示例#2
0
        private string RunAnonymization(string anonymizedDbFile, bool obfuscateMeetingTitles, bool obfuscateWindowTitles)
        {
            var anonDb = new DatabaseImplementation(anonymizedDbFile);

            anonDb.Connect();

            // log info about obfuscation
            var msg = string.Format(CultureInfo.InvariantCulture, "Starting obfuscation for participant {0} (obfuscateMeetingTitles={1}, obfuscateWindowTitles={2}).", _participantId, obfuscateMeetingTitles, obfuscateWindowTitles);

            Database.GetInstance().LogInfo(msg);
            anonDb.LogInfo(msg);

            // anonymize Meeting Titles if user desires
            if (obfuscateMeetingTitles)
            {
                try
                {
                    var query = "UPDATE " + Settings.MeetingsTable + " SET subject = hash(subject);";
                    var res   = anonDb.ExecuteDefaultQuery(query);
                    LogSuccessfulObfuscation(anonDb, Settings.MeetingsTable, res);
                }
                catch (Exception e)
                {
                    AskToSendErrorMessage(e, "obfuscateMeetingTitles", "obfuscating the meeting titles", anonDb);
                }
            }

            // anonymize Window Titles if user desires
            if (obfuscateWindowTitles)
            {
                try
                {
                    var query = "UPDATE " + Settings.WindowsActivityTable + " SET window = hash(window);";
                    var res   = anonDb.ExecuteDefaultQuery(query);
                    LogSuccessfulObfuscation(anonDb, Settings.WindowsActivityTable, res);
                }
                catch (Exception e)
                {
                    AskToSendErrorMessage(e, "obfuscateWindowTitles", "obfuscating the window titles", anonDb);
                }
            }

            anonDb.Disconnect();

            return(anonymizedDbFile);
        }
示例#3
0
        private void AskToSendErrorMessage(Exception e, string methodName, string methodDescription, DatabaseImplementation anonDb = null)
        {
            // log
            Logger.WriteToLogFile(e);
            var msg = string.Format(CultureInfo.InvariantCulture, "An error occurred in the upload wizard (method: {0}): {1}.", methodName, e.Message);

            Database.GetInstance().LogError(msg);
            if (anonDb != null)
            {
                anonDb.LogError(msg);
            }

            // ask user to send info
            var res = MessageBox.Show("We are sorry, but there was an error " + methodDescription + ". Please try again.\n\nDo you want to notify us via email to quickly resolve this issue?", _errorTitle, MessageBoxButton.YesNo);

            if (res == MessageBoxResult.Yes)
            {
                Retrospection.Handler.GetInstance().SendFeedback(_errorTitle + " (" + methodName + ")", "Error:\n\n" + e.Message + "\n\n" + e.StackTrace);
            }
        }