using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
using System.Windows.Forms;

namespace Gescom
{
    public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer
    {

        public void FormLoadCustomize(Form form)
        {
            if (form is MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm) // scherm opening/sluiting kassa actief
                MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm gescomCashOpeningClosingForm = (MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm)form;
                gescomCashOpeningClosingForm.AfterValidate += gescomCashOpeningClosingForm_AfterValidate;
                gescomCashOpeningClosingForm.Disposed += GescomCashOpeningClosingForm_Disposed;
            }
        }

        private void GescomCashOpeningClosingForm_Disposed(object sender, EventArgs e)
        {
            MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm gescomCashOpeningClosingForm = (MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm)sender;
            gescomCashOpeningClosingForm.AfterValidate -= gescomCashOpeningClosingForm_AfterValidate;
            gescomCashOpeningClosingForm.Disposed -= GescomCashOpeningClosingForm_Disposed;
        }

        void gescomCashOpeningClosingForm_AfterValidate(object sender, MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm.AfterValidateEventArgs e)
        {
            MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm gescomCashOpeningClosingForm = (MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm)sender;
            
            string msg = "Kasnummer " + gescomCashOpeningClosingForm.CashDrawer;
            if (gescomCashOpeningClosingForm.Type == MercatorUi.Forms.Gescom.GescomCashOpeningClosingForm.GescomCashOpeningClosingEnum.Opening)
                msg += " ouvert";
            else
                msg += " Afsluiting";
            msg += " par " + Globals.CurrentUser["nom"].ToString() + ".";

            Dictionary<string, object> dicoParams = new Dictionary<string, object>
            {
                { "@message", msg },
                { "@tiroir", gescomCashOpeningClosingForm.CashDrawer }
            };
            MercatorPenguin.NotificationClient.Send(msg, "03c82b35-4ae6-4db7-b142-5a774d852358", dicoParams);
        }

    }
}