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

namespace VirksomhedsSpil
{
    public partial class Form1 : Form
    {
        private Model m;
        private Facade f;

        public Form1()
        {
            m = new Model();
            f = new Facade(m);

            InitializeComponent();
            UpdateGUI();
        }

        private void UpdateGUI()
        {
            Leverandoer l = m.getLeverandoer();
            textBestillingMaster.Text = "" + l.Master;
            Raavare r = m.getRaavare();
            textRaavareMaster.Text = "" + r.Value;
            Regnskab regnsk = m.getRegnskab();
            textKasse.Text = "" + regnsk.Kasse;
            Lager lager = m.getLager();
            textLagerMaster.Text = "" + lager.Master;
            Produktion p = m.getProduktion();
            Fabrik f = p.getFabrik(0);
            textGamleFabrikValue.Text = "" + f.Vaerdi;
            Vaerksted v;
            v = f.getVaerksted(0);
            textProduktion1Produkt.Text = v.Produkt;
            textProduktion1Type.Text = v.Type;
            textProduktion1Step.Text = "" + v.Step;
            v = f.getVaerksted(1);
            textProduktion2Produkt.Text = v.Produkt;
            textProduktion2Type.Text = v.Type;
            textProduktion2Step.Text = "" + v.Step;
            v = f.getVaerksted(2);
            textProduktion3Produkt.Text = v.Produkt;
            textProduktion3Type.Text = v.Type;
            textProduktion3Step.Text = "" + v.Step;
            v = f.getVaerksted(3);
            textProduktion4Produkt.Text = v.Produkt;
            textProduktion4Type.Text = v.Type;
            textProduktion4Step.Text = "" + v.Step;
        }

        private void buttonStartForfra_Click(object sender, EventArgs e)
        {
            f.forfra();
            UpdateGUI();
            textSkyldigSkat.Text = "1";

            textMaskinerValue.Text = "8";

            textLangtLaan4.Text = "20";

            textDebitor1.Text = "6";
            textDebitor2.Text = "6";
            textDebitor3.Text = "0";
            textDebitor4.Text = "0";

            textAktueltStep.Text = "Modtag bestilte varer";
            textNextStep.Text = "Marker nye ordrer";

        }

        private void buttonStep_Click(object sender, EventArgs e)
        {
            int state = 0;
            if (textAktueltStep.Text == "Modtag bestilte varer") state = 3;
            if (textAktueltStep.Text == "Marker nye ordrer") state = 4;
            if (textAktueltStep.Text == "Opdatering af produktion") state = 5;
            if (textAktueltStep.Text == "Igangsæt ny produktion") state = 6;

            textAktueltStep.Text = textNextStep.Text;

            switch (state)
            {
                case 3:
                    {
                        f.modtageBestilteVarer();
                        UpdateGUI();
                        textNextStep.Text = "Opdatering af produktion";
                        textBestillingMaster.ReadOnly = false;
                        textBestillingMaster.Text = "";
                        textBestillingMaster.Focus();
                        break;
                    }
                case 4:
                    {
                        int antal;
                        antal = Int32.Parse(textBestillingMaster.Text);
                        f.markerNyeOrdrer(antal);
                        UpdateGUI();
                        textNextStep.Text = "Igangsæt ny produktion";
                        textBestillingMaster.ReadOnly = true;
                        break;
                    }
                case 5:
                    {
                        f.opdaterProduktion();
                        UpdateGUI();
                        if (textProduktion1Step.Text == "0" & textProduktion1Type.Text != "")
                            textProduktion1Step.ReadOnly = false;
                        if (textProduktion2Step.Text == "0" & textProduktion2Type.Text != "")
                            textProduktion2Step.ReadOnly = false;
                        if (textProduktion3Step.Text == "0" & textProduktion3Type.Text != "")
                            textProduktion3Step.ReadOnly = false;
                        if (textProduktion4Step.Text == "0" & textProduktion4Type.Text != "")
                            textProduktion4Step.ReadOnly = false;
                        textNextStep.Text = "Modtag bestilte varer";
                        break;
                    }
                case 6:
                    {
                        textNextStep.Text = "Marker nye ordrer";
                        break;
                    }
            }
        }

    }
}