using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace Kormann
{
    //
    // Beginn Schritt 2 im Sequenzdiagramm HerstellerAnzeige
    //
    public class HerstellerInfo
    {
        private string hsn;

        public string Hsn
        {
            get { return hsn; }
        }
        private string hersteller;

        public string Hersteller
        {
            get { return hersteller; }
        }

        public HerstellerInfo(string hsn, string hersteller)
        {
            this.hsn = hsn;
            this.hersteller = hersteller;
        }

        public override string ToString()
        {
            return Hersteller;
        }
    }
    
    public class Herstellerinfos
    {
        public static ArrayList GetHerstellerinfos()
        {
            return DBOperations.GetHersteller();
        }

    }
    //
    // Ende Schritt 2 im Sequenzdiagramm HerstellerAnzeige
    //

    public class ModellInfo
    {
        private int modellID;

        public int ModellID
        {
            get { return modellID; }
        }
        private string bezeichnung;

        public string Bezeichnung
        {
            get { return bezeichnung; }
        }
        private string hsn;

        public string Hsn
        {
            get { return hsn; }
        }

        
        public ModellInfo(int modellID, string bezeichnung, string hsn)
        {
            this.modellID = modellID;
            this.bezeichnung = bezeichnung;
            this.hsn = hsn;
        }

        public override string ToString()
        {
            return Bezeichnung;
        }
    }
    public class Modellinfos
    {
        public static ArrayList GetModellinfos(HerstellerInfo h)
        {
            return DBOperations.GetModelle(h);
        }

    }
    public class ArtikelgruppenInfo
    {
        private string artikelgruppe;

        public string Artikelgruppe
        {
            get { return artikelgruppe; }
            set { artikelgruppe = value; }
        }
        private string agrBezeichnung;

        public string AgrBezeichnung
        {
            get { return agrBezeichnung; }
            set { agrBezeichnung = value; }
        }
        public ArtikelgruppenInfo(string pArtikelgruppe, string pAgrBezeichnung)
        {
            this.artikelgruppe = pArtikelgruppe;
            this.agrBezeichnung = pAgrBezeichnung;
        }
        public override string ToString()
        {
            return agrBezeichnung;
        }
    }
    public class Artikelgruppeninfos
    {
        public static ArrayList GetArtikelgruppeninfos(string pText)
        {
            return DBOperations.GetArtikelgruppen(pText);
        }
        
    }
    public class ArtikelInfo
    {
        private int artikelID;

        public int ArtikelID
        {
            get { return artikelID; }
            set { artikelID = value; }
        }
        private string artikelbezeichnung;

        public string Artikelbezeichnung
        {
            get { return artikelbezeichnung; }
            set { artikelbezeichnung = value; }
        }
        private double preis;

        public double Preis
        {
            get { return preis; }
            set { preis = value; }
        }
        private int mindestbestand;

        public int Mindestbestand
        {
            get { return mindestbestand; }
            set { mindestbestand = value; }
        }
        private string lieferant;

        public string Lieferant
        {
            get { return lieferant; }
            set { lieferant = value; }
        }
        public ArtikelInfo(int pArtikelID, string pArtikelbezeichnung, double pPreis, int pMindestbestand, string pLieferant)
        {
            this.artikelID = pArtikelID;
            this.artikelbezeichnung = pArtikelbezeichnung;
            this.preis = pPreis;
            this.mindestbestand = pMindestbestand;
            this.lieferant = pLieferant;

        }
        public override string ToString()
        {
            string s ="{0, 8:G}  {1,-30}  {2,8:C}  {3,12:G}      {4,-15}";
            return String.Format(s, artikelID,
                artikelbezeichnung.Substring(0, Math.Min(artikelbezeichnung.Length, 35)).PadRight(35),
                preis, mindestbestand,
                lieferant.Substring(0, Math.Min(lieferant.Length, 15)).PadRight(15));

        }
    }
    public class Artikelinfos
    {
        public static ArrayList GetArtikelinfos(HerstellerInfo h, ModellInfo m, ArtikelgruppenInfo a)
        {
            try
            {
            return DBOperations.GetArtikel(h,m,a);
                }
            catch (Exception ex)
            {
                throw ex;
                }
        }
        public static string Kopf()
        {
            return "ArtikelID   Artikelbezeichnung                  Preis    Mindestbestand      Lieferant";
        }
    }
}
