diff --git a/Tasks/AddressCreation.cs b/Tasks/AddressCreation.cs index 873cccc..fce98b1 100644 --- a/Tasks/AddressCreation.cs +++ b/Tasks/AddressCreation.cs @@ -239,20 +239,28 @@ public static class AddressCreator public static bool CheckPLZ(string plz, string land) { if (string.IsNullOrWhiteSpace(plz)) return false; - - // For non-german countries, accept any non-empty postal code - if (land.ToLower().Trim() != "germany" && land.ToLower().Trim() != "ger" && land.ToLower().Trim() != "" && - land.ToLower().Trim() != "de" && land.ToLower().Trim() != "deutschland") - return true; - // For Germany, check if it's a valid numeric postal code (5 digits) - if (int.TryParse(plz, out var iplz)) - { - if (iplz > 99999 || iplz < 10000) return false; - return true; - } - - // If it can't be parsed as int, it's not a valid German postal code - return false; + var trimmedPlz = plz.Trim(); + var trimmedLand = land.ToLower().Trim(); + + // Check if it's a German country code + var isGermany = trimmedLand == "germany" || trimmedLand == "ger" || trimmedLand == "de" || + trimmedLand == "deutschland" || trimmedLand == ""; + + if (isGermany) + // For Germany (including empty land), accept numeric postal codes with 5 digits + try + { + var iplz = Convert.ToInt32(trimmedPlz); + if (trimmedPlz.Length == 5) return true; + return false; + } + catch + { + return false; + } + + // For non-German countries, accept any non-empty postal code + return true; } } \ No newline at end of file