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

namespace SigStock
{
    public class Customizer : MercatorUi.ICustomizers.ISigCreated
    {

        public void SigCreated(MercatorUi.Sig.Sig Sig) // Mercator moet opnieuw worden opgestart opdat het programma rekening zou houden met de wijzigingen die via SigCreated aan de customizer werden aangebracht.
        {
            Sig.Filtering += new MercatorUi.Sig.Sig.FilteringEventHandler(Sig_Filtering);
        }

        void Sig_Filtering(object sender, MercatorUi.Sig.Sig.FilteringEventArgs e)
        {
            // filter tonen
            MercatorUi.Dialogs.Stop("De volgende filter zal worden toegepast: " + e.WhereClause);
            // Ook te zien in e:
            //     e.Mode: geeft aan of er al dan niet op expression wordt gefilterd
            //     e.SigForm : SigForm vanaf waar de filtering werd opgestart

            // hoe de huidige filter annuleren?
            if (MercatorUi.Dialogs.AnswerYesNo("Wenst u de filter te annuleren?"))
            {
                e.WhereClause = ""; // door de WhereClause opnieuw leeg te plaatsen, wordt de huidige filter geannuleerd
                return;
            }

            // de filter op S_ID_RAYON annuleren: dit gedeelte van de clause heeft de vorm " and (STOCK.S_ID_RAYON='ABCDEFGHIJ')"
            if (e.WhereClause.Contains("STOCK.S_ID_RAYON"))
            {
                string s_id_rayon = Api.StrExtract(e.WhereClause, "STOCK.S_ID_RAYON='", "')");
                e.WhereClause = e.WhereClause.Replace(" and (STOCK.S_ID_RAYON='" + s_id_rayon + "')", "");
            }
        }
    }
}