using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;

namespace Main
{
    public class Customizer : MercatorUi.ICustomizers.IExec
    {
        public void Main(MercatorUi.ICustomizers.ExecAction action)
        {
            if (action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
            {
                Globals.Main.BeforeLogin += Main_BeforeLogin;
            }
            else if (action == MercatorUi.ICustomizers.ExecAction.DossierClose)
            {
                Globals.Main.BeforeLogin -= Main_BeforeLogin;
            }
        }

        void Main_BeforeLogin(object sender, MercatorUi.Main.BeforeLoginEventArgs e)
        {
            if (e.LoginMode == LoginModeEnum.AtStartup) // enkel bij het opstarten van Mercator
            {
                DataSet ds = Api.Zselect(MercatorUi.Globals.RepData, "select id from users where ...");
                if ((ds != null) && (ds.Tables[0].Rows.Count > 0))
                {
                    MercatorUi.Dialogs.Stop("U staat op het punt Mercator te betreden als ...!");
                    e.IdLoggedUser = ds.Tables[0].Rows[0]["id"].ToString(); // login uitvoeren op deze gebruiker
                    e.NoAsk = true; // de code-invoer van Mercator in elk geval onderdrukken
                    e.NoHello = true; // "Hello ..." niet weergeven
                }
                else
                {
                    MercatorUi.Dialogs.Stop("Toegang geweigerd!");
                    e.NoAsk = true; // de code-invoer van Mercator in elk geval onderdrukken
                }
            }
        }
    }
}