using AidA.Data.Entities;
using DevExpress.Xpf.Core;
using System.Windows;

namespace AidA.View
{
    /// <summary>
    /// Interaction logic for AnonymisierungslaufDetailWindow.xaml
    /// </summary>
    public partial class AnonymisierungslaufDetailWindow : ThemedWindow
    {
        private Anonymisierungslauf Anonymisierungslauf { get; set; }

        private bool AnonymisierungslaufDurchgefuehrt = false;

        public AnonymisierungslaufDetailWindow(Anonymisierungslauf anonymisierungslauf)
        {
            InitializeComponent();

            Anonymisierungslauf = anonymisierungslauf;
            if (anonymisierungslauf.Id > 0)
            {
                Title = "Anonymisierungslauf " + anonymisierungslauf.Id;
            }
            else
            {
                Title = "Neuer Anonymisierungslauf";
            }
            this.DataContext = anonymisierungslauf;
        }

        private void StartButton_Click(object sender, RoutedEventArgs e)
        {
            DurchfuehrenProgressbar.Visibility = Visibility.Visible;
            StartenButton.IsEnabled = false;
            MainController.AnonymisierungslaufDurchfuehren(Anonymisierungslauf, DurchfuehrenProgressbar);
            this.DataContext = null;
            this.DataContext = Anonymisierungslauf;
            AnonymisierungslaufDurchgefuehrt = true;
            VerwerfenButton.IsEnabled = false;
        }

        private void VerwerfenButton_Click(object sender, RoutedEventArgs e)
        {
            if (AnonymisierungslaufDurchgefuehrt)
            {
                this.Close();
            }
            else
            { 
                var text = "Vorbereiteten Anonymisierungslauf wirklich verwerfen?" +
                    "\nDaten werden nicht gespeichert.";
                var result = MessageBox.Show(text, "Vorbereiteten Anonymisierungslauf verwerfen?", MessageBoxButton.OKCancel);
                if (result == MessageBoxResult.OK)
                {
                    this.Close();
                }
            }
        }

        private void SpeichernButton_Click(object sender, RoutedEventArgs e)
        {
            MainController.AnonymisierungslaufSpeichern(Anonymisierungslauf);
            SpeichernButton.IsEnabled = false;
        }

        private void SchliessenButton_Click(object sender, RoutedEventArgs e)
        {
            if (AnonymisierungslaufDurchgefuehrt)
            {
                this.Close();
            }
            else
            {
                var text = "Fenster schließen und vorbereiteten Anonymisierungslauf verwerfen?" +
                    "\nDaten werden nicht gespeichert.";
                var result = MessageBox.Show(text, "Schließen und vorbereiteten Anonymisierungslauf verwerfen?", MessageBoxButton.OKCancel);
                if (result == MessageBoxResult.OK)
                {
                    this.Close();
                }
            }
        }

        private void BemerkungTextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
        {
            if (BemerkungTextBox.Text.Length > 0)
            {
                SpeichernButton.IsEnabled = true;
            }
        }
    }
}
