private static int MainMenu() { Console.Clear(); if (DebugEnabled) { Prettier.DebugIndicator(); } Prettier.Banner("IBAN Tool", "Version 1.0", ConsoleColor.Blue, 12); Console.WriteLine(); Console.WriteLine("(1) IBAN aus BLZ und Kontonummer generieren"); Console.WriteLine("(2) IBAN verifizieren"); Console.WriteLine("(3) Liste von BLZ und Kontonummer in IBAN konvertieren"); Console.WriteLine("(4) Liste von IBANs validieren"); Console.WriteLine(); if (!DebugEnabled) { Console.WriteLine("(5) Debug-Log aktivieren"); } else { Console.WriteLine("(5) Debug-Log deaktivieren"); } Console.WriteLine("(6) Beenden"); return(GetUserChoice(1, 6)); }
private static void Validate() { Console.Clear(); Prettier.Banner("IBAN-Validierung", foreGroundColor: ConsoleColor.Blue, padding: 10); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.White; Console.Write("Bitte geben sie eine Iban ein: "); string [] number = new string [3]; string iban = Console.ReadLine()?.Replace(" ", ""); if (iban != null) { if (iban.Length != 22) { Prettier.ShowMessage("Fehler: Fehlerhafte IBAN. Mit [ENTER] zum Menü zurückkehren...", Prettier.MessageKind.Error); Console.ReadLine(); } else { string[] ibanArray = { iban.Substring(0, 2), iban.Substring(2, 2), iban.Substring(4, 8), iban.Substring(12, 10) }; bool valid = ValidateIban(ref ibanArray, int.Parse(ibanArray[1])); number[1] = iban.Substring(12, 10); number[2] = iban.Substring(4, 8); string validString = valid ? "gültig" : "ungültig"; //Soll es eine ausgabe geben mit den einzelnen Daten oder nur eine Ausgabe die bestätigt, dass es eine IBAN ist? Prettier.Banner($"Konto-Nr.: {number[1]} BLZ: {number[2]}. Die IBAN ist {validString}.", padding: 20, centerVertical: true); //Console.WriteLine("Konto-Nr.:" + number[1] + "\n" + "BLZ:" + number[2]); Console.ReadLine(); } } }
private static string WriteConvertedData(string[] bankData) { Console.Clear(); Prettier.Banner("Massenkonvertierung", "Klassische Kontodaten zu IBAN", ConsoleColor.Blue, 10); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.White; Console.Write("Bitte geben Sie den Namen der Zieldatei an: "); CursorPosition cursorPosition = new CursorPosition(Console.CursorLeft, Console.CursorTop); string fileName = GetFilename(cursorPosition, false); if (DebugEnabled) { LogHelper.Log("WriteConvertedData | Chosen filename (full path): " + Path.GetFullPath(fileName)); } using (StreamWriter writer = new StreamWriter(fileName, false)) { writer.WriteLine("IBAN"); foreach (string iban in bankData) { writer.WriteLine(iban); } } return(fileName); }
public static void Main(string[] args) { if (args != null && args.Length > 0) { if (args[0] == "debug") { DebugEnabled = true; LogHelper.Log("Main | Program started. Debugging enabled."); } } int action; while ((action = MainMenu()) != 6) { switch (action) { case 1: Generate(); break; case 2: Validate(); break; case 3: BulkConvert(); break; case 4: BulkValidate(); break; case 5: DebugEnabled = !DebugEnabled; break; } } Console.Clear(); Prettier.Banner("Vielen Dank für die Benutzung des Programms!", "Auf Wiedersehen!", padding: 10); }
private static void BulkValidate() { Console.Clear(); Prettier.Banner("Massenvalidierung", "IBAN- Validierung", foreGroundColor: ConsoleColor.Blue, padding: 10); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.White; Console.Write("Bitte geben Sie den Namen der zu validierenden Datei an: "); CursorPosition cursorPosition = new CursorPosition(Console.CursorLeft, Console.CursorTop); string fileName = GetFilename(cursorPosition); long[] composition = GetComposition(fileName); string[] result = new string[composition[1]]; using (StreamReader reader = new StreamReader(fileName)) { string line; int counter = 0; while ((line = reader.ReadLine()) != null) { string[] iban = new string[4]; if (composition[0] == 1) { continue; } iban[0] = line.Substring(0, 2); iban[1] = line.Substring(2, 2); iban[2] = line.Substring(4, 8); iban[3] = line.Substring(12, 10); int checksum = int.Parse(iban[1]); if (!ValidateIban(ref iban, checksum)) { result[counter] = line; counter++; } } } WriteInvalidIbans(result); }
private static void BulkConvert() { Console.Clear(); Prettier.Banner("Massenkonvertierung", "Klassische Kontodaten zu IBAN", ConsoleColor.Blue, 10); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.White; Console.Write("Bitte geben Sie den Namen der zu konvertierenden Datei an: "); CursorPosition cursorPosition = new CursorPosition(Console.CursorLeft, Console.CursorTop); string fileName = GetFilename(cursorPosition); if (DebugEnabled) { LogHelper.Log("BulkConvert | Chosen filename (full path): " + Path.GetFullPath(fileName)); } string[] bankdata = ConvertBankData(fileName); string outFileName = WriteConvertedData(bankdata); Prettier.ShowMessage($"Die Daten wurden in der Datei {outFileName} gespeichert. Mit [ENTER] zum Menü...", Prettier.MessageKind.Success); Console.ReadLine(); }
private static void Generate() { Console.Clear(); Prettier.Banner("IBAN generieren", foreGroundColor: ConsoleColor.Blue, padding: 10); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.White; Console.Write("Bitte geben Sie eine Kontonummer ein: "); CursorPosition cursorPosition = new CursorPosition(Console.CursorLeft, Console.CursorTop); string accountNumber = GetBankData(cursorPosition, 'k'); if (DebugEnabled) { LogHelper.Log("Generate | Account number entered: " + accountNumber); } Console.Write("Bitte die BLZ eingeben: "); cursorPosition.UpdatePosition(Console.CursorLeft, Console.CursorTop); string bankNumber = GetBankData(cursorPosition, 'b'); if (DebugEnabled) { LogHelper.Log("Generate | Bank number entered: " + bankNumber); } string[] iban = GenerateIban(bankNumber, accountNumber); Console.Clear(); string result = string.Concat(iban); if (DebugEnabled) { LogHelper.Log("Generate | Generated IBAN: " + result); } Prettier.Banner($"Ihre IBAN lautet {FormatIban(ref result)}", padding: 20, centerVertical: true); Prettier.ShowMessage("Mit [ENTER] gelangen Sie zurück zum Menü", Prettier.MessageKind.Success); Console.ReadLine(); }