private void newItemAddMenuItem_Click(object sender, EventArgs e) { itemCollection = new LogicItemCollection(); formAddItem = new FormAddItem(); formAddItem.TodaysDate = TodaysDate; formAddItem.ShowDialog(); // formAddItemオブジェクトが破棄されていない場合、LogicItemCollection型へ内容を格納。 if (formAddItem.IsDisposed) { return; } else { // 新規アイテム追加フォームのプロパティから、LogicItemCollection型へ内容を格納する。 itemCollection.UserCheckPassHash = yourPassHash; itemCollection.Purpose = formAddItem.PassPurpose; itemCollection.Account = formAddItem.PassAccount; itemCollection.PassWord = formAddItem.PassWord; itemCollection.IsAlarmLimitOnOrOff = formAddItem.IsAlarmLimitOnOrOff; itemCollection.IsAlarmOnOrOff = formAddItem.IsAlarmOnOrOff; itemCollection.LimitDate = formAddItem.LimitDate; formAddItem.Dispose(); alreadyExportdb = false; } listViewMode = "LIST"; searchTextBox.Text = ""; searchButton.Enabled = false; clearButton.Enabled = true; itemList.Add(itemCollection); OnListRefresh(); InitializeControl(); ShowMyDialog.ShowInfoMessageBox("新しいアイテムの登録が完了しました。", "- 新規アイテムの登録の完了"); }
private LogicItemCollection CheckFormAndDoDecryptAES(string[] fields) { LogicItemCollection decryptItem = new LogicItemCollection(); // フィールドの数の確認。 if (fields.Length != 7) { decryptItem.IsErrorFromCsv = true; throw new IOException ("dbファイルの一部を読み込む事が出来ませんでした。\n\n" + "ファイルのフォーマットが正しくない、ファイルが破損している可能性があります。\n" + "プログラムを起動する前に無効なdbファイルを修復する必要があります。\n\n" + "プログラムはアイテムのインポートを中止します。"); } foreach (string _tmpLengthCheck in fields) { if (_tmpLengthCheck.Length == 0) { decryptItem.IsErrorFromCsv = true; throw new IOException ("dbファイルの一部を読み込む事が出来ませんでした。\n\n" + "ファイルのフォーマットが正しくない、ファイルが破損している可能性があります。\n" + "プログラムを起動する前に無効なdbファイルを修復する必要があります。\n\n" + "プログラムはアイテムのインポートを中止します。"); } } decryptItem.UserCheckPassHash = fields[0]; // ユーザ認証パスワードのHASH値を取得。 decryptItem.Purpose = logicAes.DoDecryptAES(fields[1], fields[0]); // パスワードの用途の複合化。 decryptItem.Account = logicAes.DoDecryptAES(fields[2], fields[0]); // パスワードのアカウントの複合化。 decryptItem.PassWord = logicAes.DoDecryptAES(fields[3], fields[0]); // パスワードの複合化。 decryptItem.IsAlarmLimitOnOrOffTypeString = logicAes.DoDecryptAES(fields[4], fields[0]); // パスワードの有効期限の有無の複合化。 decryptItem.IsAlarmOnOrOffTypeString = logicAes.DoDecryptAES(fields[5], fields[0]); // アラームの有無の復号化 decryptItem.LimitDateTypeString = logicAes.DoDecryptAES(fields[6], fields[0]); // パスワードの有効期限の複合化。 // 文字列で受け取った"Bool"の値をbool値に変換して格納。 decryptItem.IsAlarmLimitOnOrOff = decryptItem.String2Bool(decryptItem.IsAlarmLimitOnOrOffTypeString); decryptItem.IsAlarmOnOrOff = decryptItem.String2Bool(decryptItem.IsAlarmOnOrOffTypeString); if (decryptItem.IsAlarmLimitOnOrOff) { // 文字列で受け取った"期日"の値をDateTime型に変換して格納。 decryptItem.LimitDate = decryptItem.String2DateTime(decryptItem.LimitDateTypeString); } return decryptItem; }
private void InitializeObject() { _newEditItem = new LogicItemCollection(); _stringCheckZenkaku = new Regex(@"[^\x01-\x7E]"); _stringCheckHankaku = new Regex(@"[\x20-\x7E]"); }
public IEnumerable<LogicItemCollection> ImportCsv(string FILENAME, string encryptionType) { importItem = new LogicItemCollection(); importStream = new FileStream(FILENAME, FileMode.Open, FileAccess.Read); importencode = Encoding.UTF8; using (TextFieldParser textFieldParser = new TextFieldParser(importStream, importencode)) { textFieldParser.TextFieldType = FieldType.Delimited; textFieldParser.SetDelimiters(","); textFieldParser.HasFieldsEnclosedInQuotes = false; textFieldParser.TrimWhiteSpace = false; if (encryptionType == "AES") { while (!textFieldParser.EndOfData) { // 一行の各要素(CSVフォーマット)を各配列の要素に格納。 string[] _tmpArray = textFieldParser.ReadFields(); importItem = CheckFormAndDoDecryptAES(_tmpArray); importItem.NowReadStreamSize = importencode.GetByteCount(_tmpArray[0] + _tmpArray[1] + _tmpArray[2] + _tmpArray[3] + _tmpArray[4] + _tmpArray[5] + _tmpArray[6]); yield return importItem; } } else if (encryptionType == "3DES") { while (!textFieldParser.EndOfData) { // 一行の各要素(CSVフォーマット)を各配列の要素に格納。 string[] _tmpArray = textFieldParser.ReadFields(); importItem = CheckFormAndDoDecrypt3DES(_tmpArray); importItem.NowReadStreamSize = importencode.GetByteCount(_tmpArray[0] + _tmpArray[1] + _tmpArray[2] + _tmpArray[3] + _tmpArray[4] + _tmpArray[5] + _tmpArray[6]); yield return importItem; } } } }