using MercatorPenguin;
using MercatorPenguin.EditCustomizers;

namespace TestPenguinCustomizerTransfer
{
    public class CustomizerTransfer : BaseEditTransferCustomizer
    {
        public CustomizerTransfer(ConstructorParams constructorParams) :
            base(constructorParams)
        { }

        public override async Task OnBeforeSaveAsync(BeforeSaveEventArgs e)
        {
            IEditPicker editPickerPiedIdDepot1 = Controls.OfType<IEditPicker>().FirstOrDefault(c => c.Source?.Equals("ID_DEPOT1", StringComparison.InvariantCultureIgnoreCase) ?? false);
            IEditPicker editPickerPiedIdDepot2 = Controls.OfType<IEditPicker>().FirstOrDefault(c => c.Source?.Equals("ID_DEPOT2", StringComparison.InvariantCultureIgnoreCase) ?? false);
            if ((editPickerPiedIdDepot1 == null) || (editPickerPiedIdDepot2 == null))
            {
                await Dialogs.Stop(Page, "Erreur : Impossible de trouver les EditPickers liés à ID_DEPOT1 et/ou ID_DEPOT2 !");
                return;
            }

            if (!await Dialogs.AnswerYesNo(Page, $"Voulez-vous vraiment enregistrer les modifications sur ce transfert de \"{editPickerPiedIdDepot1.DisplayValue}\" vers \"{editPickerPiedIdDepot2.DisplayValue}\" ?"))
            {
                e.CancelSave = true;
            }
        }
    }
}