Add Bic and Plz validation
This commit is contained in:
		@@ -111,7 +111,7 @@
 | 
			
		||||
 | 
			
		||||
                <Label Content="PLZ/Ort:" HorizontalAlignment="Left" Margin="10,162,0,0" VerticalAlignment="Top" Padding="2"/>
 | 
			
		||||
                <TextBox x:Name="PlzInput" IsReadOnly="True"
 | 
			
		||||
                         TextChanged="PlzInput_TextChanged"
 | 
			
		||||
                         TextChanged="PlzInput_TextChanged" LostFocus="PlzInput_LostFocus"
 | 
			
		||||
                         HorizontalAlignment="Left" Margin="0,160,0,0" VerticalAlignment="Top" Width="42" FontSize="14" Padding="2" Grid.Column="1" Height="25"/>
 | 
			
		||||
                <ComboBox x:Name="OrtInput" ItemTemplate="{StaticResource PostalDestComboBoxTemplate}" IsEnabled="False"
 | 
			
		||||
                          SelectionChanged="ComboBox_SelectionChanged"
 | 
			
		||||
@@ -156,10 +156,11 @@
 | 
			
		||||
                <Label Content="IBAN:" HorizontalAlignment="Left" Margin="10,12,0,0" VerticalAlignment="Top" Padding="2"/>
 | 
			
		||||
                <TextBox x:Name="IbanInput" IsReadOnly="True"
 | 
			
		||||
                         TextChanged="IbanInput_TextChanged" LostFocus="IbanInput_LostFocus"
 | 
			
		||||
                        Margin="0,10,10,0" VerticalAlignment="Top" FontSize="14" Padding="2" Grid.Column="1" Height="25"/>
 | 
			
		||||
                         Margin="0,10,10,0" VerticalAlignment="Top" FontSize="14" Padding="2" Grid.Column="1" Height="25"/>
 | 
			
		||||
 | 
			
		||||
                <Label Content="BIC:" HorizontalAlignment="Left" Margin="10,42,0,0" VerticalAlignment="Top" Padding="2"/>
 | 
			
		||||
                <TextBox x:Name="BicInput" IsReadOnly="True"
 | 
			
		||||
                         TextChanged="BicInput_TextChanged" LostFocus="BicInput_LostFocus"
 | 
			
		||||
                         Margin="0,40,10,0" VerticalAlignment="Top" FontSize="14" Padding="2" Grid.Column="1" Height="25"/>
 | 
			
		||||
            </Grid>
 | 
			
		||||
        </GroupBox>
 | 
			
		||||
@@ -201,7 +202,7 @@
 | 
			
		||||
 | 
			
		||||
                <Label Content="PLZ/Ort:" HorizontalAlignment="Left" Margin="10,72,0,0" VerticalAlignment="Top" Padding="2"/>
 | 
			
		||||
                <TextBox x:Name="BillingPlzInput" IsReadOnly="True"
 | 
			
		||||
                         TextChanged="PlzInput_TextChanged"
 | 
			
		||||
                         TextChanged="BillingPlzInput_TextChanged" LostFocus="BillingPlzInput_LostFocus"
 | 
			
		||||
                         HorizontalAlignment="Left" Margin="0,70,0,0" VerticalAlignment="Top" Width="42" FontSize="14" Padding="2" Grid.Column="1"/>
 | 
			
		||||
                <ComboBox x:Name="BillingOrtInput" ItemTemplate="{StaticResource PostalDestComboBoxTemplate}" IsEnabled="False"
 | 
			
		||||
                          SelectionChanged="ComboBox_SelectionChanged"
 | 
			
		||||
 
 | 
			
		||||
@@ -101,15 +101,6 @@ namespace WGneu.Windows {
 | 
			
		||||
            RefreshInputs();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void PlzInput_TextChanged(object sender, RoutedEventArgs e) {
 | 
			
		||||
            if (PlzInput.Text.Length == 4 && PlzInput.Text.All(char.IsDigit)) {
 | 
			
		||||
                int plz = int.Parse(PlzInput.Text);
 | 
			
		||||
                var o = Context.Postleitzahlen.Where(p => p.Plz == plz).ToHashSet();
 | 
			
		||||
                OrtInput.ItemsSource = o;
 | 
			
		||||
                OrtInput.SelectedItem = null;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void NewMemberButton_Click(object sender, RoutedEventArgs e) {
 | 
			
		||||
            IsCreating = true;
 | 
			
		||||
            MemberList.IsEnabled = false;
 | 
			
		||||
@@ -385,6 +376,18 @@ namespace WGneu.Windows {
 | 
			
		||||
            return true;  // TODO
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void UpdatePlz(TextBox plzInput, ComboBox ortInput) {
 | 
			
		||||
            if (plzInput.Text.Length == 4) {
 | 
			
		||||
                int plz = int.Parse(plzInput.Text);
 | 
			
		||||
                ortInput.ItemsSource = Context.Postleitzahlen.Where(p => p.Plz == plz).ToHashSet();
 | 
			
		||||
            } else {
 | 
			
		||||
                ortInput.ItemsSource = null;
 | 
			
		||||
            }
 | 
			
		||||
            ortInput.SelectedItem = null;
 | 
			
		||||
            Valid[plzInput] = (ortInput.ItemsSource != null);
 | 
			
		||||
            UpdateButtons();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void InputTextChanged(TextBox input, bool optional, Func<TextBox, bool, ValidationResult> checker) {
 | 
			
		||||
            var res = checker(input, optional);
 | 
			
		||||
            Valid[input] = res.IsValid;
 | 
			
		||||
@@ -405,6 +408,16 @@ namespace WGneu.Windows {
 | 
			
		||||
            UpdateButtons();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void PlzInput_TextChanged(object sender, RoutedEventArgs e) {
 | 
			
		||||
            InputTextChanged((TextBox)sender, false, Validator.CheckPlz);
 | 
			
		||||
            UpdatePlz((TextBox)sender, OrtInput);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void PlzInput_LostFocus(object sender, RoutedEventArgs e) {
 | 
			
		||||
            InputLostFocus((TextBox)sender, true, Validator.CheckPlz, null);
 | 
			
		||||
            UpdatePlz((TextBox)sender, OrtInput);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void PhoneNrInput_TextChanged(object sender, RoutedEventArgs e) {
 | 
			
		||||
            InputTextChanged((TextBox)sender, true, Validator.CheckPhoneNumber);
 | 
			
		||||
        }
 | 
			
		||||
@@ -429,6 +442,14 @@ namespace WGneu.Windows {
 | 
			
		||||
            InputLostFocus((TextBox)sender, true, Validator.CheckIban, null);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void BicInput_TextChanged(object sender, RoutedEventArgs e) {
 | 
			
		||||
            InputTextChanged((TextBox)sender, true, Validator.CheckBic);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void BicInput_LostFocus(object sender, RoutedEventArgs e) {
 | 
			
		||||
            InputLostFocus((TextBox)sender, true, Validator.CheckBic, null);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void LfbisNrInput_TextChanged(object sender, RoutedEventArgs e) {
 | 
			
		||||
            InputTextChanged((TextBox)sender, true, Validator.CheckLfbisNr);
 | 
			
		||||
        }
 | 
			
		||||
@@ -436,5 +457,15 @@ namespace WGneu.Windows {
 | 
			
		||||
        private void LfbisNrInput_LostFocus(object sender, RoutedEventArgs e) {
 | 
			
		||||
            InputLostFocus((TextBox)sender, true, Validator.CheckLfbisNr, "Betriebsnummer ungültig");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void BillingPlzInput_TextChanged(object sender, RoutedEventArgs e) {
 | 
			
		||||
            InputTextChanged((TextBox)sender, true, Validator.CheckPlz);
 | 
			
		||||
            UpdatePlz((TextBox)sender, BillingOrtInput);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void BillingPlzInput_LostFocus(object sender, RoutedEventArgs e) {
 | 
			
		||||
            InputLostFocus((TextBox)sender, true, Validator.CheckPlz, null);
 | 
			
		||||
            UpdatePlz((TextBox)sender, BillingOrtInput);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user