예제 #1
0
        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);
        }
예제 #2
0
        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();
                }
            }
        }
예제 #3
0
        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());
        }
예제 #4
0
        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();
        }
예제 #5
0
        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);
        }
예제 #6
0
        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();
        }
예제 #7
0
        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();
        }