Outsource many methods from MemberAdminWindow to abstract classes

This commit is contained in:
2023-03-22 23:16:56 +01:00
parent 606bb47203
commit 51b9dcbf41
4 changed files with 324 additions and 249 deletions

View File

@ -0,0 +1,261 @@
using Elwig.Helpers;
using Elwig.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
namespace Elwig.Windows {
public abstract class AdministrationWindow : ContextWindow {
protected Control[] ExemptInputs { private get; set; }
protected Control[] RequiredInputs { private get; set; }
private TextBox[] TextBoxInputs;
private ComboBox[] ComboBoxInputs;
private CheckBox[] CheckBoxInputs;
private RadioButton[] RadioButtonInputs;
private readonly Dictionary<Control, bool> Valid;
private readonly Dictionary<Control, object?> OriginalValues;
public AdministrationWindow() : base() {
ExemptInputs = Array.Empty<Control>();
RequiredInputs = Array.Empty<Control>();
TextBoxInputs = Array.Empty<TextBox>();
ComboBoxInputs = Array.Empty<ComboBox>();
CheckBoxInputs = Array.Empty<CheckBox>();
RadioButtonInputs = Array.Empty<RadioButton>();
Valid = new();
OriginalValues = new();
Loaded += OnLoaded;
}
private void OnLoaded(object sender, RoutedEventArgs evt) {
TextBoxInputs = Utils.FindVisualChilds<TextBox>(this, ExemptInputs).ToArray();
ComboBoxInputs = Utils.FindVisualChilds<ComboBox>(this, ExemptInputs).ToArray();
CheckBoxInputs = Utils.FindVisualChilds<CheckBox>(this, ExemptInputs).ToArray();
RadioButtonInputs = Utils.FindVisualChilds<RadioButton>(this, ExemptInputs).ToArray();
foreach (var tb in TextBoxInputs)
Valid[tb] = true;
}
abstract protected void UpdateButtons();
protected void ValidateInput(Control input, bool valid) {
Valid[input] = valid;
}
protected bool SenderIsRequired(object sender) {
return (sender is Control c) && RequiredInputs.Contains(c);
}
protected void ClearInputStates() {
foreach (var tb in TextBoxInputs)
Utils.ClearInputState(tb);
foreach (var cb in ComboBoxInputs)
Utils.ClearInputState(cb);
foreach (var cb in CheckBoxInputs)
Utils.ClearInputState(cb);
foreach (var rb in RadioButtonInputs)
Utils.ClearInputState(rb);
}
protected void ValidateRequiredInputs() {
foreach (var input in RequiredInputs) {
if (input is TextBox tb && tb.Text.Length == 0) {
Utils.SetInputInvalid(input);
Valid[input] = false;
} else if (input is ComboBox cb && cb.SelectedItem == null) {
Utils.SetInputInvalid(input);
}
}
foreach (var cb in ComboBoxInputs) {
if (cb.ItemsSource != null && cb.SelectedItem == null)
Utils.SetInputInvalid(cb);
}
}
protected void LockInputs() {
foreach (var tb in TextBoxInputs)
tb.IsReadOnly = true;
foreach (var cb in ComboBoxInputs)
cb.IsEnabled = false;
foreach (var cb in CheckBoxInputs)
cb.IsEnabled = false;
foreach (var rb in RadioButtonInputs)
rb.IsEnabled = false;
}
protected void UnlockInputs() {
foreach (var tb in TextBoxInputs)
tb.IsReadOnly = false;
foreach (var cb in ComboBoxInputs)
cb.IsEnabled = true;
foreach (var cb in CheckBoxInputs)
cb.IsEnabled = true;
foreach (var rb in RadioButtonInputs)
rb.IsEnabled = true;
}
protected void ClearOriginalValues() {
OriginalValues.Clear();
}
protected void FillOriginalValues() {
foreach (var tb in TextBoxInputs)
OriginalValues[tb] = tb.Text;
foreach (var cb in ComboBoxInputs)
OriginalValues[cb] = cb.SelectedItem;
foreach (var cb in CheckBoxInputs)
OriginalValues[cb] = (cb.IsChecked ?? false) ? bool.TrueString : null;
foreach (var rb in RadioButtonInputs)
OriginalValues[rb] = (rb.IsChecked ?? false) ? bool.TrueString : null;
}
protected void ClearInputs() {
foreach (var tb in TextBoxInputs)
tb.Text = "";
foreach (var cb in ComboBoxInputs)
cb.SelectedItem = null;
foreach (var cb in CheckBoxInputs)
cb.IsChecked = false;
foreach (var rb in RadioButtonInputs)
rb.IsChecked = false;
ValidateRequiredInputs();
}
protected bool IsValid() {
return Valid.All(kv => kv.Value) && ComboBoxInputs.All(cb => cb.ItemsSource == null || cb.SelectedItem != null);
}
protected bool InputHasChanged(Control input) {
if (!OriginalValues.ContainsKey(input)) {
return false;
} else if (input is TextBox tb) {
return OriginalValues[tb]?.ToString() != tb.Text;
} else if (input is ComboBox sb) {
return OriginalValues[sb] != sb.SelectedItem;
} else if (input is CheckBox cb) {
return (OriginalValues[cb] != null) != (cb.IsChecked ?? false);
} else if (input is RadioButton rb) {
return (OriginalValues[rb] != null) != (rb.IsChecked ?? false);
} else {
return false;
}
}
protected bool HasChanged() {
return !IsValid() ||
TextBoxInputs.Any(InputHasChanged) ||
ComboBoxInputs.Any(InputHasChanged) ||
CheckBoxInputs.Any(InputHasChanged) ||
RadioButtonInputs.Any(InputHasChanged);
}
protected 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;
if (ortInput.ItemsSource != null) {
Utils.SetInputInvalid(ortInput);
} else {
Utils.ClearInputState(ortInput);
}
ValidateInput(plzInput, SenderIsRequired(plzInput) || (ortInput.ItemsSource != null));
UpdateButtons();
}
protected void InputTextChanged(TextBox input, Func<TextBox, bool, ValidationResult> checker) {
InputTextChanged(input, (tb, required, ctx) => checker(tb, required));
}
protected void InputTextChanged(TextBox input, Func<TextBox, bool, AppDbContext, ValidationResult> checker) {
InputTextChanged(input, checker(input, SenderIsRequired(input), Context));
}
protected void InputTextChanged(TextBox input, ValidationResult res) {
ValidateInput(input, res.IsValid);
if (res.IsValid) {
if (InputHasChanged(input)) {
Utils.SetInputChanged(input);
} else {
Utils.ClearInputState(input);
}
} else {
Utils.SetInputInvalid(input);
}
UpdateButtons();
}
protected void InputLostFocus(TextBox input, Func<TextBox, bool, ValidationResult> checker, string? msg = null) {
InputLostFocus(input, (tb, requiered, ctx) => checker(tb, requiered), msg);
}
protected void InputLostFocus(TextBox input, Func<TextBox, bool, AppDbContext, ValidationResult> checker, string? msg = null) {
InputLostFocus(input, checker(input, SenderIsRequired(input), Context), msg);
}
protected void InputLostFocus(TextBox input, ValidationResult res, string? msg = null) {
if (!res.IsValid)
MessageBox.Show(res.ErrorContent.ToString(), msg ?? res.ErrorContent.ToString(), MessageBoxButton.OK, MessageBoxImage.Warning);
}
protected void CheckBox_Changed(object sender, RoutedEventArgs evt) {
var input = (CheckBox)sender;
if (SenderIsRequired(input) && input.IsChecked != true) {
Utils.SetInputInvalid(input);
} else if (InputHasChanged(input)) {
Utils.SetInputChanged(input);
} else {
Utils.ClearInputState(input);
}
UpdateButtons();
}
protected void RadioButton_Changed(object sender, RoutedEventArgs evt) {
var input = (RadioButton)sender;
if (SenderIsRequired(input) && input.IsChecked != true) {
Utils.SetInputInvalid(input);
} else if (InputHasChanged(input)) {
Utils.SetInputChanged(input);
} else {
Utils.ClearInputState(input);
}
UpdateButtons();
}
protected void TextBox_TextChanged(object sender, RoutedEventArgs evt) {
var input = (TextBox)sender;
if (SenderIsRequired(input) && input.Text.Length == 0) {
ValidateInput(input, false);
Utils.SetInputInvalid(input);
} else {
ValidateInput(input, true);
if (InputHasChanged(input)) {
Utils.SetInputChanged(input);
} else {
Utils.ClearInputState(input);
}
}
UpdateButtons();
}
protected void ComboBox_SelectionChanged(object sender, RoutedEventArgs evt) {
var input = (ComboBox)sender;
if (input.ItemsSource != null && input.SelectedItem == null) {
Utils.SetInputInvalid(input);
} else if (InputHasChanged(input)) {
Utils.SetInputChanged(input);
} else {
Utils.ClearInputState(input);
}
UpdateButtons();
}
}
}

View File

@ -0,0 +1,23 @@
using Elwig.Helpers;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace Elwig.Windows {
public abstract class ContextWindow : Window {
protected readonly AppDbContext Context;
public ContextWindow() : base() {
Context = new();
}
protected override void OnClosing(CancelEventArgs evt) {
Context.Dispose();
base.OnClosing(evt);
}
}
}

View File

@ -1,4 +1,4 @@
<Window x:Class="Elwig.Windows.MemberAdminWindow" <local:AdministrationWindow x:Class="Elwig.Windows.MemberAdminWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
@ -305,4 +305,4 @@
</Grid> </Grid>
</GroupBox> </GroupBox>
</Grid> </Grid>
</Window> </local:AdministrationWindow>

View File

@ -13,20 +13,11 @@ using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore.ChangeTracking; using Microsoft.EntityFrameworkCore.ChangeTracking;
namespace Elwig.Windows { namespace Elwig.Windows {
public partial class MemberAdminWindow : Window { public partial class MemberAdminWindow : AdministrationWindow {
private bool IsEditing = false; private bool IsEditing = false;
private bool IsCreating = false; private bool IsCreating = false;
private List<string> TextFilter = new(); private List<string> TextFilter = new();
private readonly Control[] ExemptInputs;
private readonly Control[] RequiredInputs;
private IEnumerable<TextBox> TextBoxInputs = Array.Empty<TextBox>();
private IEnumerable<ComboBox> ComboBoxInputs = Array.Empty<ComboBox>();
private IEnumerable<CheckBox> CheckBoxInputs = Array.Empty<CheckBox>();
private IEnumerable<RadioButton> RadioButtonInputs = Array.Empty<RadioButton>();
private readonly Dictionary<Control, bool> Valid = new();
private readonly Dictionary<Control, object?> OriginalValues = new();
private readonly RoutedCommand CtrlF = new(); private readonly RoutedCommand CtrlF = new();
private readonly AppDbContext Context = new();
public MemberAdminWindow() { public MemberAdminWindow() {
InitializeComponent(); InitializeComponent();
@ -48,21 +39,6 @@ namespace Elwig.Windows {
ActiveMemberInput.IsChecked = true; ActiveMemberInput.IsChecked = true;
BranchInput.ItemsSource = Context.Branches.OrderBy(b => b.Name).ToList(); BranchInput.ItemsSource = Context.Branches.OrderBy(b => b.Name).ToList();
DefaultKgInput.ItemsSource = Context.WbKgs.Select(k => k.Kg).OrderBy(k => k.Name).ToList(); DefaultKgInput.ItemsSource = Context.WbKgs.Select(k => k.Kg).OrderBy(k => k.Name).ToList();
TextBoxInputs = Utils.FindVisualChilds<TextBox>(this, ExemptInputs).ToList();
ComboBoxInputs = Utils.FindVisualChilds<ComboBox>(this, ExemptInputs).ToList();
CheckBoxInputs = Utils.FindVisualChilds<CheckBox>(this, ExemptInputs).ToList();
RadioButtonInputs = Utils.FindVisualChilds<RadioButton>(this, ExemptInputs).ToList();
foreach (var tb in TextBoxInputs)
Valid[tb] = true;
}
protected override void OnClosing(CancelEventArgs evt) {
Context.Dispose();
base.OnClosing(evt);
}
private bool SenderIsRequired(object sender) {
return (sender is Control c) && RequiredInputs.Contains(c);
} }
private async Task RefreshMemberList() { private async Task RefreshMemberList() {
@ -100,17 +76,6 @@ namespace Elwig.Windows {
RefreshInputs(); RefreshInputs();
} }
private void ClearInputStates() {
foreach (var tb in TextBoxInputs)
Utils.ClearInputState(tb);
foreach (var cb in ComboBoxInputs)
Utils.ClearInputState(cb);
foreach (var cb in CheckBoxInputs)
Utils.ClearInputState(cb);
foreach (var rb in RadioButtonInputs)
Utils.ClearInputState(rb);
}
private void RefreshInputs(bool validate = false) { private void RefreshInputs(bool validate = false) {
ClearInputStates(); ClearInputStates();
Member m = (Member)MemberList.SelectedItem; Member m = (Member)MemberList.SelectedItem;
@ -137,14 +102,7 @@ namespace Elwig.Windows {
ActiveInput.IsChecked = true; ActiveInput.IsChecked = true;
ContactPostInput.IsChecked = true; ContactPostInput.IsChecked = true;
FillOriginalValues(); FillOriginalValues();
foreach (var input in RequiredInputs) { ValidateRequiredInputs();
if (input is TextBox tb && tb.Text.Length == 0) {
Utils.SetInputInvalid(input);
Valid[input] = false;
} else if (input is ComboBox cb && cb.SelectedItem == null) {
Utils.SetInputInvalid(input);
}
}
} }
private void MemberList_SelectionChanged(object sender, RoutedEventArgs evt) { private void MemberList_SelectionChanged(object sender, RoutedEventArgs evt) {
@ -288,28 +246,6 @@ namespace Elwig.Windows {
DeleteMemberButton.Visibility = Visibility.Hidden; DeleteMemberButton.Visibility = Visibility.Hidden;
} }
private void LockInputs() {
foreach (var tb in TextBoxInputs)
tb.IsReadOnly = true;
foreach (var cb in ComboBoxInputs)
cb.IsEnabled = false;
foreach (var cb in CheckBoxInputs)
cb.IsEnabled = false;
foreach (var rb in RadioButtonInputs)
rb.IsEnabled = false;
}
private void UnlockInputs() {
foreach (var tb in TextBoxInputs)
tb.IsReadOnly = false;
foreach (var cb in ComboBoxInputs)
cb.IsEnabled = true;
foreach (var cb in CheckBoxInputs)
cb.IsEnabled = true;
foreach (var rb in RadioButtonInputs)
rb.IsEnabled = true;
}
private void LockSearchInputs() { private void LockSearchInputs() {
SearchInput.IsEnabled = false; SearchInput.IsEnabled = false;
ActiveMemberInput.IsEnabled = false; ActiveMemberInput.IsEnabled = false;
@ -386,7 +322,7 @@ namespace Elwig.Windows {
} }
private void FillInputs(Member m) { private void FillInputs(Member m) {
OriginalValues.Clear(); ClearOriginalValues();
MgNrInput.Text = m.MgNr.ToString(); MgNrInput.Text = m.MgNr.ToString();
PredecessorMgNrInput.Text = m.PredecessorMgNr.ToString(); PredecessorMgNrInput.Text = m.PredecessorMgNr.ToString();
@ -459,267 +395,122 @@ namespace Elwig.Windows {
FillOriginalValues(); FillOriginalValues();
} }
private void FillOriginalValues() { protected void ClearInputs() {
foreach (var tb in TextBoxInputs)
OriginalValues[tb] = tb.Text;
foreach (var cb in ComboBoxInputs)
OriginalValues[cb] = cb.SelectedItem;
foreach (var cb in CheckBoxInputs)
OriginalValues[cb] = (cb.IsChecked ?? false) ? bool.TrueString : null;
foreach (var rb in RadioButtonInputs)
OriginalValues[rb] = (rb.IsChecked ?? false) ? bool.TrueString : null;
}
private void ClearInputs() {
Menu_Member_SendEmail.IsEnabled = false; Menu_Member_SendEmail.IsEnabled = false;
AreaCommitment.Text = "- m²"; AreaCommitment.Text = "- m²";
OriginalValues.Clear(); ClearOriginalValues();
foreach (var tb in TextBoxInputs) { base.ClearInputs();
tb.Text = " ";
tb.Text = "";
}
foreach (var cb in ComboBoxInputs) {
cb.SelectedItem = null;
if (cb.ItemsSource != null)
Utils.SetInputInvalid(cb);
}
foreach (var cb in CheckBoxInputs)
cb.IsChecked = false;
foreach (var rb in RadioButtonInputs)
rb.IsChecked = false;
} }
private bool IsValid() { override protected void UpdateButtons() {
return Valid.All(kv => kv.Value) && ComboBoxInputs.All(cb => cb.ItemsSource == null || cb.SelectedItem != null);
}
private void UpdateButtons() {
if (!IsEditing && !IsCreating) return; if (!IsEditing && !IsCreating) return;
bool ch = HasChanged(), v = IsValid(); bool ch = HasChanged(), v = IsValid();
ResetButton.IsEnabled = (ch); ResetButton.IsEnabled = (ch);
SaveButton.IsEnabled = (v && ch); SaveButton.IsEnabled = (v && ch);
} }
private bool InputHasChanged(Control input) { protected void InputTextChanged(TextBox input, Func<TextBox, bool, AppDbContext, Member?, ValidationResult> checker) {
if (!OriginalValues.ContainsKey(input)) { InputTextChanged(input, checker(input, SenderIsRequired(input), Context, (Member)MemberList.SelectedItem));
return false;
} else if (input is TextBox tb) {
return OriginalValues[tb]?.ToString() != tb.Text;
} else if (input is ComboBox sb) {
return OriginalValues[sb] != sb.SelectedItem;
} else if (input is CheckBox cb) {
return (OriginalValues[cb] != null) != (cb.IsChecked ?? false);
} else if (input is RadioButton rb) {
return (OriginalValues[rb] != null) != (rb.IsChecked ?? false);
} else {
return false;
}
} }
private bool HasChanged() { protected void InputLostFocus(TextBox input, Func<TextBox, bool, AppDbContext, Member?, ValidationResult> checker, string? msg = null) {
return !IsValid() || InputLostFocus(input, checker(input, SenderIsRequired(input), Context, (Member)MemberList.SelectedItem), msg);
TextBoxInputs.Any(InputHasChanged) ||
ComboBoxInputs.Any(InputHasChanged) ||
CheckBoxInputs.Any(InputHasChanged) ||
RadioButtonInputs.Any(InputHasChanged);
}
private void UpdatePlz(TextBox plzInput, ComboBox ortInput, bool required) {
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;
if (ortInput.ItemsSource != null) {
Utils.SetInputInvalid(ortInput);
} else {
Utils.ClearInputState(ortInput);
}
Valid[plzInput] = !required || (ortInput.ItemsSource != null);
UpdateButtons();
}
private void InputTextChanged(TextBox input, bool required, Func<TextBox, bool, ValidationResult> checker) {
InputTextChanged(input, required, (tb, opt, ctx) => checker(tb, opt));
}
private void InputTextChanged(TextBox input, bool required, Func<TextBox, bool, AppDbContext, ValidationResult> checker) {
InputTextChanged(input, required, (tb, opt, ctx, m) => checker(tb, opt, ctx));
}
private void InputTextChanged(TextBox input, bool required, Func<TextBox, bool, AppDbContext, Member, ValidationResult> checker) {
var res = checker(input, required, Context, (Member)MemberList.SelectedItem);
Valid[input] = res.IsValid;
if (res.IsValid) {
if (InputHasChanged(input)) {
Utils.SetInputChanged(input);
} else {
Utils.ClearInputState(input);
}
} else {
Utils.SetInputInvalid(input);
}
UpdateButtons();
}
private void InputLostFocus(TextBox input, bool required, Func<TextBox, bool, ValidationResult> checker, string? msg = null) {
InputLostFocus(input, required, (tb, required, ctx) => checker(tb, required), msg);
}
private void InputLostFocus(TextBox input, bool required, Func<TextBox, bool, AppDbContext, ValidationResult> checker, string? msg = null) {
InputLostFocus(input, required, (tb, required, ctx, m) => checker(tb, required, ctx), msg);
}
private void InputLostFocus(TextBox input, bool required, Func<TextBox, bool, AppDbContext, Member?, ValidationResult> checker, string? msg = null) {
var res = checker(input, required, Context, (Member)MemberList.SelectedItem);
if (!res.IsValid)
MessageBox.Show(res.ErrorContent.ToString(), msg ?? res.ErrorContent.ToString(), MessageBoxButton.OK, MessageBoxImage.Warning);
}
private void CheckBox_Changed(object sender, RoutedEventArgs evt) {
var input = (CheckBox)sender;
if (InputHasChanged(input)) {
Utils.SetInputChanged(input);
} else {
Utils.ClearInputState(input);
}
UpdateButtons();
}
private void RadioButton_Changed(object sender, RoutedEventArgs evt) {
var input = (RadioButton)sender;
if (InputHasChanged(input)) {
Utils.SetInputChanged(input);
} else {
Utils.ClearInputState(input);
}
UpdateButtons();
}
private void TextBox_TextChanged(object sender, RoutedEventArgs evt) {
var input = (TextBox)sender;
if (SenderIsRequired(input) && input.Text.Length == 0) {
Valid[input] = false;
Utils.SetInputInvalid(input);
} else {
Valid[input] = true;
if (InputHasChanged(input)) {
Utils.SetInputChanged(input);
} else {
Utils.ClearInputState(input);
}
}
UpdateButtons();
}
private void ComboBox_SelectionChanged(object sender, RoutedEventArgs evt) {
var input = (ComboBox)sender;
if (input.ItemsSource != null && input.SelectedItem == null) {
Utils.SetInputInvalid(input);
} else if (InputHasChanged(input)) {
Utils.SetInputChanged(input);
} else {
Utils.ClearInputState(input);
}
UpdateButtons();
} }
private void NumericInput_TextChanged(object sender, RoutedEventArgs evt) { private void NumericInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckNumeric); InputTextChanged((TextBox)sender, Validator.CheckNumeric);
} }
private void MgNrInput_TextChanged(object sender, RoutedEventArgs evt) { private void MgNrInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckMgNr); InputTextChanged((TextBox)sender, Validator.CheckMgNr);
} }
private void MgNrInput_LostFocus(object sender, RoutedEventArgs evt) { private void MgNrInput_LostFocus(object sender, RoutedEventArgs evt) {
InputLostFocus((TextBox)sender, SenderIsRequired(sender), Validator.CheckMgNr); InputLostFocus((TextBox)sender, Validator.CheckMgNr);
} }
private void PredecessorMgNrInput_TextChanged(object sender, RoutedEventArgs evt) { private void PredecessorMgNrInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckPredecessorMgNr); InputTextChanged((TextBox)sender, Validator.CheckPredecessorMgNr);
} }
private void PredecessorMgNrInput_LostFocus(object sender, RoutedEventArgs evt) { private void PredecessorMgNrInput_LostFocus(object sender, RoutedEventArgs evt) {
InputLostFocus((TextBox)sender, SenderIsRequired(sender), Validator.CheckPredecessorMgNr); InputLostFocus((TextBox)sender, Validator.CheckPredecessorMgNr);
} }
private void BirthdayInput_TextChanged(object sender, RoutedEventArgs evt) { private void BirthdayInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckPartialDate); InputTextChanged((TextBox)sender, Validator.CheckPartialDate);
} }
private void PlzInput_TextChanged(object sender, RoutedEventArgs evt) { private void PlzInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckPlz); InputTextChanged((TextBox)sender, Validator.CheckPlz);
UpdatePlz((TextBox)sender, OrtInput, SenderIsRequired(sender)); UpdatePlz((TextBox)sender, OrtInput);
} }
private void PlzInput_LostFocus(object sender, RoutedEventArgs evt) { private void PlzInput_LostFocus(object sender, RoutedEventArgs evt) {
InputLostFocus((TextBox)sender, SenderIsRequired(sender), Validator.CheckPlz); InputLostFocus((TextBox)sender, Validator.CheckPlz);
UpdatePlz((TextBox)sender, OrtInput, SenderIsRequired(sender)); UpdatePlz((TextBox)sender, OrtInput);
} }
private void PhoneNrInput_TextChanged(object sender, RoutedEventArgs evt) { private void PhoneNrInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckPhoneNumber); InputTextChanged((TextBox)sender, Validator.CheckPhoneNumber);
} }
private void PhoneNrInput_LostFocus(object sender, RoutedEventArgs evt) { private void PhoneNrInput_LostFocus(object sender, RoutedEventArgs evt) {
InputLostFocus((TextBox)sender, SenderIsRequired(sender), Validator.CheckPhoneNumber); InputLostFocus((TextBox)sender, Validator.CheckPhoneNumber);
} }
private void EmailInput_TextChanged(object sender, RoutedEventArgs evt) { private void EmailInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckEmailAddress); InputTextChanged((TextBox)sender, Validator.CheckEmailAddress);
} }
private void EmailInput_LostFocus(object sender, RoutedEventArgs evt) { private void EmailInput_LostFocus(object sender, RoutedEventArgs evt) {
InputLostFocus((TextBox)sender, SenderIsRequired(sender), Validator.CheckEmailAddress); InputLostFocus((TextBox)sender, Validator.CheckEmailAddress);
} }
private void IbanInput_TextChanged(object sender, RoutedEventArgs evt) { private void IbanInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckIban); InputTextChanged((TextBox)sender, Validator.CheckIban);
} }
private void IbanInput_LostFocus(object sender, RoutedEventArgs evt) { private void IbanInput_LostFocus(object sender, RoutedEventArgs evt) {
InputLostFocus((TextBox)sender, SenderIsRequired(sender), Validator.CheckIban); InputLostFocus((TextBox)sender, Validator.CheckIban);
} }
private void BicInput_TextChanged(object sender, RoutedEventArgs evt) { private void BicInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckBic); InputTextChanged((TextBox)sender, Validator.CheckBic);
} }
private void BicInput_LostFocus(object sender, RoutedEventArgs evt) { private void BicInput_LostFocus(object sender, RoutedEventArgs evt) {
InputLostFocus((TextBox)sender, SenderIsRequired(sender), Validator.CheckBic); InputLostFocus((TextBox)sender, Validator.CheckBic);
} }
private void UstIdInput_TextChanged(object sender, RoutedEventArgs evt) { private void UstIdInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckUstId); InputTextChanged((TextBox)sender, Validator.CheckUstId);
} }
private void UstIdInput_LostFocus(object sender, RoutedEventArgs evt) { private void UstIdInput_LostFocus(object sender, RoutedEventArgs evt) {
InputLostFocus((TextBox)sender, SenderIsRequired(sender), Validator.CheckUstId); InputLostFocus((TextBox)sender, Validator.CheckUstId);
} }
private void LfbisNrInput_TextChanged(object sender, RoutedEventArgs evt) { private void LfbisNrInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckLfbisNr); InputTextChanged((TextBox)sender, Validator.CheckLfbisNr);
} }
private void LfbisNrInput_LostFocus(object sender, RoutedEventArgs evt) { private void LfbisNrInput_LostFocus(object sender, RoutedEventArgs evt) {
InputLostFocus((TextBox)sender, SenderIsRequired(sender), Validator.CheckLfbisNr); InputLostFocus((TextBox)sender, Validator.CheckLfbisNr);
} }
private void BillingPlzInput_TextChanged(object sender, RoutedEventArgs evt) { private void BillingPlzInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckPlz); InputTextChanged((TextBox)sender, Validator.CheckPlz);
UpdatePlz((TextBox)sender, BillingOrtInput, SenderIsRequired(sender)); UpdatePlz((TextBox)sender, BillingOrtInput);
} }
private void BillingPlzInput_LostFocus(object sender, RoutedEventArgs evt) { private void BillingPlzInput_LostFocus(object sender, RoutedEventArgs evt) {
InputLostFocus((TextBox)sender, SenderIsRequired(sender), Validator.CheckPlz); InputLostFocus((TextBox)sender, Validator.CheckPlz);
UpdatePlz((TextBox)sender, BillingOrtInput, SenderIsRequired(sender)); UpdatePlz((TextBox)sender, BillingOrtInput);
} }
private void DateInput_TextChanged(object sender, RoutedEventArgs evt) { private void DateInput_TextChanged(object sender, RoutedEventArgs evt) {
InputTextChanged((TextBox)sender, SenderIsRequired(sender), Validator.CheckDate); InputTextChanged((TextBox)sender, Validator.CheckDate);
} }
} }
} }