using System.Windows.Forms;

namespace Aufgabe1_HelpdeskVorlage
{
    public partial class Form1 : Form
    {
        // Hier sollen die Schueler die noetige Programmlogik der GUI umsetzen.
        // Die Klasse Ticket ist bereits vollstaendig vorhanden.
        // Aufgabe: Eine passende Windows-Forms-Oberflaeche erstellen und mit der Klasse verbinden.

        private Ticket currentTicket;

        public Form1()
        {
            InitializeComponent();
        }

        private void btnCreate_Click(object sender, System.EventArgs e)
        {
            string titel = txtTitel.Text ?? string.Empty;
            string kategorie = txtKategorie.Text ?? string.Empty;
            int prioritaet = (int)nudPrioritaet.Value;

            currentTicket = new Ticket(titel, kategorie, prioritaet);
            AppendAusgabe("Neues Ticket erstellt: " + currentTicket.GibTicketInfo());
        }

        private void btnAendereTitel_Click(object sender, System.EventArgs e)
        {
            if (currentTicket == null)
            {
                AppendAusgabe("Kein Ticket vorhanden. Erstellen Sie zuerst ein Ticket.");
                return;
            }

            string neuerTitel = txtTitel.Text ?? string.Empty;
            currentTicket.TitelAendern(neuerTitel);
            AppendAusgabe("Titel geändert: " + currentTicket.GibTicketInfo());
        }

        private void btnAendereKategorie_Click(object sender, System.EventArgs e)
        {
            if (currentTicket == null)
            {
                AppendAusgabe("Kein Ticket vorhanden. Erstellen Sie zuerst ein Ticket.");
                return;
            }

            string neueKategorie = txtKategorie.Text ?? string.Empty;
            currentTicket.KategorieAendern(neueKategorie);
            AppendAusgabe("Kategorie geändert: " + currentTicket.GibTicketInfo());
        }

        private void btnSetzePrioritaet_Click(object sender, System.EventArgs e)
        {
            if (currentTicket == null)
            {
                AppendAusgabe("Kein Ticket vorhanden. Erstellen Sie zuerst ein Ticket.");
                return;
            }

            int neuePrioritaet = (int)nudPrioritaet.Value;
            currentTicket.PrioritaetSetzen(neuePrioritaet);
            AppendAusgabe("Prioritaet gesetzt: " + currentTicket.GibTicketInfo());
        }

        private void btnOeffnen_Click(object sender, System.EventArgs e)
        {
            if (currentTicket == null)
            {
                AppendAusgabe("Kein Ticket vorhanden. Erstellen Sie zuerst ein Ticket.");
                return;
            }

            currentTicket.TicketOeffnen();
            AppendAusgabe("Ticket geöffnet: " + currentTicket.GibTicketInfo());
        }

        private void btnSchliessen_Click(object sender, System.EventArgs e)
        {
            if (currentTicket == null)
            {
                AppendAusgabe("Kein Ticket vorhanden. Erstellen Sie zuerst ein Ticket.");
                return;
            }

            currentTicket.TicketSchliessen();
            AppendAusgabe("Ticket geschlossen: " + currentTicket.GibTicketInfo());
        }

        private void btnZeigeInfo_Click(object sender, System.EventArgs e)
        {
            if (currentTicket == null)
            {
                AppendAusgabe("Kein Ticket vorhanden.");
                return;
            }

            AppendAusgabe("Ticket Info: " + currentTicket.GibTicketInfo());
        }

        private void AppendAusgabe(string text)
        {
            if (txtAusgabe.Text.Length > 0)
            {
                txtAusgabe.AppendText(System.Environment.NewLine);
            }
            txtAusgabe.AppendText(text);
        }
    }
}
