using Elwig.Helpers; using System.Linq; using System.Windows; using System.Windows.Controls; namespace Elwig.Dialogs { public partial class DeleteMemberDialog : Window { protected string[] NameParts; public bool DeleteAreaCmts { get; set; } public bool DeleteDeliveries { get; set; } public bool DeletePaymentData { get; set; } public DeleteMemberDialog(int mgnr, string name, int numAreaCmts, int numDeliveries, int numCredits) { NameParts = name.ToLower().Split(' ').Where(p => p.Length > 0).Append($"{mgnr}").ToArray(); InitializeComponent(); Title += " - " + name; AreaCmtInput.IsEnabled = numAreaCmts != 0; AreaCmtInput.Content += $" ({numAreaCmts:N0})"; DeliveryInput.IsEnabled = numDeliveries != 0; DeliveryInput.Content += $" ({numDeliveries:N0})"; PaymentInput.IsEnabled = numCredits != 0; PaymentInput.Content += $" ({numCredits:N0})"; } private void NameInput_TextChanged(object sender, TextChangedEventArgs evt) { Update(); } private void CheckBox_Changed(object sender, RoutedEventArgs evt) { Update(); } private static void UpdateCheckBox(CheckBox cb) { if (cb.IsEnabled && cb.IsChecked != true) { ControlUtils.SetInputInvalid(cb); } else { ControlUtils.ClearInputState(cb); } } private void Update() { var t = NameInput.Text.ToLower().Split(' '); var nameValid = NameParts.All(t.Contains); UpdateCheckBox(AreaCmtInput); UpdateCheckBox(DeliveryInput); UpdateCheckBox(PaymentInput); if (!nameValid) { ControlUtils.SetInputInvalid(NameInput); } else { ControlUtils.ClearInputState(NameInput); } ConfirmButton.IsEnabled = (!AreaCmtInput.IsEnabled || DeleteAreaCmts) && (!DeliveryInput.IsEnabled || DeleteDeliveries) && (!PaymentInput.IsEnabled || DeletePaymentData) && nameValid; } private void ConfirmButton_Click(object sender, RoutedEventArgs evt) { DialogResult = true; Close(); } } }