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 += new MercatorUi.Main.BeforeLoginEventHandler(Main_BeforeLogin);
            }
            else if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
            {
                Globals.Main.BeforeLogin -= new MercatorUi.Main.BeforeLoginEventHandler(Main_BeforeLogin);
            }
        }

        void Main_BeforeLogin(object sender, MercatorUi.Main.BeforeLoginEventArgs e)
        {
            if (e.LoginMode == LoginModeEnum.AtStartup) // uniquement au démarrage de 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("Vous allez entrer dans Mercator en tant que ... !");
                    e.IdLoggedUser = ds.Tables[0].Rows[0]["id"].ToString(); // effectuer le login sur cet utilisateur
                    e.NoAsk = true; // supprimer quoi qu'il arrive la saisie du code par Mercator
                    e.NoHello = true; // Ne pas afficher "Hello ..."
                }
                else
                {
                    MercatorUi.Dialogs.Stop("Accès refusé !");
                    e.NoAsk = true; // supprimer quoi qu'il arrive la saisie du code par Mercator
                }
            }
        }
    }
}