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();
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |