Ejemplo n.º 1
0
        private void FileOpenToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // Einstellen der Datenformate für auslesen der Accountdaten
            openFileDialogData.Filter = ResourceText.AccountFileFilter;

            // Datei öffnen Dialog anzeigen
            DialogResult FilePointer = openFileDialogData.ShowDialog();

            // Überprüfen ob Dateidialog ohne Eingabe
            if (FilePointer == DialogResult.Cancel || FilePointer == DialogResult.Abort)
            {
                return;
            }

            DialogResult Abort = DialogResult.OK;               // Variable zum späteren überprüfen ob auslesen abgebrochen

            // Überprüfen ob Daten in Datensätzen vorhanden
            if (listViewAccount.Items.Count > 0 || listViewCertificate.Items.Count > 0)
            {
                Abort = MessageBox.Show(ResourceText.MsgFileOpenOverwrite, ResourceText.Warning, MessageBoxButtons.OKCancel, MessageBoxIcon.Hand);
            }

            // Überprüfen ob überschreiben abgebrochen
            if (Abort == DialogResult.Cancel)
            {
                return;
            }

            string filename = openFileDialogData.FileName; // Datenpfad auf lokale Variable legen

            string[][] data;                               // interne Datenvariable

            bool crypt = true;                             // Variable zum einstellen der Dateiverschlüsselung

            // !!! Nur vorübergehende Lösung (unsauber) !!!
            string passphrase = Interaction.InputBox("Bitte Passphrase zum Entschlüsseln der Kennwortdaten eingeben, bei leerer Eingabe werden die Daten unverschlüsselt gespeichert, (Kennwörter werden immer verschlüsselt!)", "Eingabeaufforderung");

            if (passphrase == ResourceText.EMPTY)
            {
                crypt = false;
            }
            // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

            // Überprüfen ob Daten ausgelesen und vorhanden
            if ((data = Handler.ReadCSV(Path.GetDirectoryName(filename), Path.GetFileName(filename), '|', crypt, passphrase)) == null)
            {
                return;
            }

            // Vorhandene Daten aus Wörterbüchern entfernen
            _systemparameter.SystemAccount.Clear();
            _systemparameter.SystemCertificate.Clear();

            // Neue Daten in Wörterbücher sowie Listbox Schreiben
            Tool.Account2Dict(data, _systemparameter.SystemAccount, listViewAccount, true);
            Tool.Certificate2Dict(data, _systemparameter.SystemCertificate, listViewCertificate, true);

            _accountid        = -1;                     // Accountid Rücksetzen
            _authentification = false;                  // Authentifizierungsmethode rücksetzen
        }