using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Linq;

namespace Kormann
{
    public partial class Autoteile : Form
    {
        // formularweite Variablen
        
        
        public Autoteile()
        {
            InitializeComponent();
            cbxModell.Enabled = false;
            FillComboBoxes();

        }

        private void FillComboBoxes()
        {
            //
            // Beginn Schritt 1 im Sequenzdiagramm HerstellerAnzeige
            //
            ArrayList lst = Herstellerinfos.GetHerstellerinfos();
            cbxHersteller.DataSource = lst;
            //
            // Ende Schritt 1 im Sequenzdiagramm HerstellerAnzeige
            //

            // Artikelgruppen zur Auswahl laden
            string pText=" '%' ";
            ArrayList lstAGr = Artikelgruppeninfos.GetArtikelgruppeninfos(pText);
            cbxArtikelgruppe.DataSource = lstAGr;
            cbxArtikelgruppe.SelectedIndex = -1;
            
        }

        private void Autoteile_Load(object sender, EventArgs e)
        {
        
        }


        private void cbxHersteller_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            if (cbxHersteller.SelectedIndex > 0)
            {
                cbxModell.Enabled = true;
                cbxModell.DataSource = null;

                HerstellerInfo h = (HerstellerInfo)cbxHersteller.SelectedItem;

                ArrayList lst = Modellinfos.GetModellinfos(h);
                cbxModell.DataSource = lst;
            }
            else
            {
                cbxModell.Enabled = false;
            }


        }

        private void cmdHerstellerLoeschen_Click_1(object sender, EventArgs e)
        {
            cbxHersteller.SelectedIndex = -1;
            cbxModell.Enabled = false;
        }

        private void cmdModellLoeschen_Click_1(object sender, EventArgs e)
        {
            cbxModell.SelectedIndex = -1;
        }

        private void cbxArtikelgruppe_SelectedIndexChanged(object sender, EventArgs e)
        {
           
        }

        private void cbxArtikelgruppe_TextChanged(object sender, EventArgs e)
        {
            
        }

        private void cbxArtikelgruppe_DropDown(object sender, EventArgs e)
        {
            string pText = "'" + cbxArtikelgruppe.Text.Trim() + "%'";
            ArrayList lstAGr = Artikelgruppeninfos.GetArtikelgruppeninfos(pText);
            cbxArtikelgruppe.DataSource = lstAGr;
        }

        private void btnArtikelansicht_Click(object sender, EventArgs e)
        {
            try
            {
            HerstellerInfo h;
            ModellInfo m;
            ArtikelgruppenInfo a;
            if (cbxHersteller.SelectedIndex >= 0)
            {
                h = (HerstellerInfo)cbxHersteller.SelectedItem;
            }
            else
            {
                h = new HerstellerInfo("", "");
            }
            if (cbxModell.Enabled == true && cbxModell.SelectedIndex >= 0)
            {
                m = (ModellInfo)cbxModell.SelectedItem;
            }
            else
            {
                m = new ModellInfo(0, "", "");
            }
            if (cbxArtikelgruppe.SelectedIndex >= 0)
            {
                 a = (ArtikelgruppenInfo)cbxArtikelgruppe.SelectedItem;

            }
            else
            {
                 a = new ArtikelgruppenInfo("", "");
            }
                // Aufruf der Methode der Fachschicht mit 
                // weitergabe aller ausgewählten Objekte 
                // für Hersteller, Modell und Artikelgruppe
                // Hat eine Wahl nicht stattgefunden kann dies an der Art
                // der Feldbelegung festgelegt werden.
            ArrayList lstArt = Artikelinfos.GetArtikelinfos(h,m,a);
            const char LF = (char)10;
            lblAktualisiert.Text = Artikelinfos.Kopf() + LF;
                foreach (ArtikelInfo art in lstArt) 
                {
                    lblAktualisiert.Text = lblAktualisiert.Text + art.ToString() + LF;
                }
        }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                }
            }
    }
}
