using MercatorPenguin;
using MercatorPenguin.EditCustomizers;

namespace TestPenguinCustomizerInventory
{
    public class CustomizerInventory : BaseEditInventoryCustomizer
    {
        public CustomizerInventory(ConstructorParams constructorParams) :
            base(constructorParams)
        { }

        public override async Task OnBeforeSaveAsync(BeforeSaveEventArgs e)
        {
            string lignes = string.Format("{0} lijn{1}", Lignes.Rows.Count, Lignes.Rows.Count > 1 ? "en" : "");
            if (!await Dialogs.AnswerYesNo(Page, $"Wilt u de wijzigingen op deze inventaris met {lignes} echt opslaan?"))
            {
                e.CancelSave = true;
            }
        }
		public override async Task OnBeforeDeleteLineAsync(BeforeDeleteLineEventArgs e)
		{
			if (!await Dialogs.AnswerYesNo(Page, $"Wilt u deze lijn {e.Ligne["id_art"]} op deze picking echt verwijderen?"))
			{
				e.CancelDeleteLine = true;
			}
		}

		public override async void OnAfterDeleteLine(AfterDeleteLineEventArgs e)
		{
			await Dialogs.Stop(Page, $"De lijn werd succesvol verwijderd!");
		}

		public override async Task OnBeforeChangeLineAsync(BeforeChangeLineEventArgs e)
		{
			if (!await Dialogs.AnswerYesNo(Page, $"Wilt u de kolom {e.ColumnToChange} van deze lijn {e.Line["id_art"]} echt wijzigen met deze nieuwe waarde {e.NewValue}?"))
			{
				e.CancelChangeLine = true;
			}
		}
	}
}