Files
elwig/Elwig/Dialogs/DeleteMemberDialog.xaml.cs
Lorenz Stechauner 5a4ff26f31
All checks were successful
Test / Run tests (push) Successful in 1m59s
[#16] DeleteMemberDialog: Highlight invalid/not-checked inputs
2024-06-11 12:34:07 +02:00

67 lines
2.3 KiB
C#

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 DeleteAreaComs { get; set; }
public bool DeleteDeliveries { get; set; }
public bool DeletePaymentData { get; set; }
public DeleteMemberDialog(int mgnr, string name, int numAreaComs, int numDeliveries, int numCredits) {
NameParts = name.ToLower().Split(' ').Where(p => p.Length > 0).Append($"{mgnr}").ToArray();
InitializeComponent();
Title += " - " + name;
AreaComInput.IsEnabled = numAreaComs != 0;
AreaComInput.Content += $" ({numAreaComs: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();
var nameValid = NameParts.All(t.Contains);
UpdateCheckBox(AreaComInput);
UpdateCheckBox(DeliveryInput);
UpdateCheckBox(PaymentInput);
if (!nameValid) {
ControlUtils.SetInputInvalid(NameInput);
} else {
ControlUtils.ClearInputState(NameInput);
}
ConfirmButton.IsEnabled =
(!AreaComInput.IsEnabled || DeleteAreaComs) &&
(!DeliveryInput.IsEnabled || DeleteDeliveries) &&
(!PaymentInput.IsEnabled || DeletePaymentData) &&
nameValid;
}
private void ConfirmButton_Click(object sender, RoutedEventArgs evt) {
DialogResult = true;
Close();
}
}
}