67 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			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().Split(' ');
 | |
|             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();
 | |
|         }
 | |
|     }
 | |
| }
 |