using System.Text;
using System.Data;
using MercatorApi;
using MercatorController;
using System.Data.SqlClient;

namespace MercatorUi.MovableControls.ButtonsCodes
{
    public static class Script
    {
        public static void Exec(MercatorUi.MovableControls.MovableButton clickedButton)
        {
            MercatorUi.Forms.Sig.SigForm sigForm = (MercatorUi.Forms.Sig.SigForm)clickedButton.Form;
            if (!sigForm.Sig.Write(sigForm)) // proposer une sauvegarde de la fiche en cours si nécessaire
                return;
            using (MercatorSqlConnection connSql = new MercatorSqlConnection(Globals.RepData, true)) // établissement d'une connexion vers la DB SQL
            {
                if (connSql.Connection == null) // la connexion SQL a été refusée.
                    return;
                using (SqlTransaction transac = connSql.Connection.BeginTransaction()) // on va faire l'ensemble sous transaction. Ce n'est pas obligatoire : on peut passer null au lieu de transac à ScriptsApplyToSomeRecords
                {
                    if (sigForm.Sig.ScriptsApplyToSomeRecords(sigForm.Filter, connSql.Connection, transac, showProgressBar: true))
                    {
                        transac.Commit();
                        Dialogs.Stop(Api.Iif_langue(Globals.Langue, 14));
                    }
                    else
                        Api.SafeRollback(transac);
                }
            }
        }
    }
}