private static int GetUserChoice(int min, int max) { int action = 0; bool valid = false; Console.ForegroundColor = ConsoleColor.White; Console.Write("Bitte wählen Sie eine Aktion: "); Console.ResetColor(); CursorPosition cursorPosition = new CursorPosition(Console.CursorLeft, Console.CursorTop); while (!valid) { valid = int.TryParse(Console.ReadLine(), out action); if (valid == false | (action < min || action > max)) { Prettier.ShowMessage($"Bitte eine Zahl zwischen {min} und {max} eingeben!", Prettier.MessageKind.Error, cursorPosition); Prettier.ClearLine(cursorPosition); valid = false; } } Prettier.ClearMessage(); return(action); }
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 GetBankData(CursorPosition cursorPosition, char type) { bool valid = false; long input = 0; int requiredLength = type == 'b' ? 8 : 10; while (!valid) { valid = long.TryParse(Console.ReadLine()?.Replace(" ", string.Empty), out input); if (!valid) { Prettier.ShowMessage($"Ihre Eingabe ist ungültig!", Prettier.MessageKind.Error, cursorPosition); Prettier.ClearLine(cursorPosition); } if (input.ToString().Length != requiredLength) { Prettier.ShowMessage($"Ihre Eingabe ist zu lang oder zu kurz!", Prettier.MessageKind.Error, cursorPosition); Prettier.ClearLine(cursorPosition); valid = false; } } Prettier.ClearMessage(); return(input.ToString()); }
private static void WriteInvalidIbans(string[] ibanList) { string fileName = "invalid.csv"; using (StreamWriter writer = new StreamWriter(fileName)) { writer.WriteLine("Invalid IBANs"); foreach (string iban in ibanList) { if (iban != null) { writer.WriteLine(iban); } } } Prettier.ShowMessage($"Fehlerhafte IBANs wurden in die Datei {fileName} geschrieben. Mit [ENTER] zum Menü...", Prettier.MessageKind.Success); Console.ReadLine(); }
private static string GetFilename(CursorPosition cursorPosition, bool mustExist = true) { bool valid = false; string fileName = ""; while (!valid) { valid = (fileName = Console.ReadLine()?.Replace("\"", string.Empty)) != null; if (!valid | !File.Exists(fileName) & mustExist) { Prettier.ShowMessage($"Die Datei {fileName} existiert nicht oder kann nicht gelesen werden!", Prettier.MessageKind.Error, cursorPosition); Prettier.ClearLine(cursorPosition); valid = false; } } Prettier.ClearMessage(); return(fileName); }
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(); }