diff --git a/Dakota/Models/Daten/Datenelement.cs b/Dakota/Models/Daten/Datenelement.cs index 2ea0fd4c0..6eee0014f 100644 --- a/Dakota/Models/Daten/Datenelement.cs +++ b/Dakota/Models/Daten/Datenelement.cs @@ -49,14 +49,7 @@ namespace Dakota.Models.Daten if (!_IgnoreCheck) { - if (_Value.Length < MinStellen) - { - throw new GkvException($"Das Feld \"{Title}:{_Value}\" hat bei der Auswertung {_Value.Length} Stellen ergeben! Nach Vorgabe muss es jedoch mindestens {MinStellen} Stellen haben"); - } - else if (_Value.Length > MaxStellen) - { - throw new GkvException($"Das Feld \"{Title}:{_Value}\" hat bei der Auswertung {_Value.Length} Stellen ergeben! Nach Vorgabe darf es jedoch maximal {MaxStellen} Stellen haben"); - } + CheckValue(_Value); } return _Value; @@ -90,15 +83,7 @@ namespace Dakota.Models.Daten value = value.Trim(); - if (value.Length < MinStellen) - { - throw new GkvException($"Das Feld \"{Title}\" hat bei der Erstellung {value.Length} Stellen ergeben! Nach Vorgabe muss es jedoch mindestens {MinStellen} Stellen haben"); - } - - if (value.Length > MaxStellen) - { - throw new GkvException($"Das Feld \"{Title}\" hat bei der Erstellung {value.Length} Stellen ergeben! Nach Vorgabe darf es jedoch maximal {MaxStellen} Stellen haben"); - } + CheckValue(value); try { @@ -111,5 +96,23 @@ namespace Dakota.Models.Daten throw new Exception($"Fehler bei Feld \'{Title}\' mit Wert \"{value}\"", e); } } + + private void CheckValue(string value) + { + if (value.Length < MinStellen) + { + throw GetGkvException(value, true); + } + + else if (value.Length > MaxStellen) + { + throw GetGkvException(value, false); + } + } + + private GkvException GetGkvException(string value, bool isLess) + => new GkvException($"Das Feld \"{Title}\" hat bei der Erstellung {value.Length} Stellen ergeben! Nach Vorgabe " + + $"{(isLess ? $"muss es jedoch mindestens {MinStellen}" : $"darf es jedoch maximal {MaxStellen}")}" + + " Stellen haben"); } }