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

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IBillingEngineCreated, MercatorUi.ICustomizers.IBillingEngineClosed
    {
        public void BillingEngineCreated(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.PenguinVirtualScannerAddingItem += BillingEngine_PenguinVirtualScannerAddingItem;
            billingEngine.PenguinVirtualScannerDataPrepared += BillingEngine_PenguinVirtualScannerDataPrepared;
        }

        public void BillingEngineClosed(MercatorUi.Engine.Gescom.BillingEngine billingEngine)
        {
            billingEngine.PenguinVirtualScannerAddingItem -= BillingEngine_PenguinVirtualScannerAddingItem;
            billingEngine.PenguinVirtualScannerDataPrepared -= BillingEngine_PenguinVirtualScannerDataPrepared;
        }

        private void BillingEngine_PenguinVirtualScannerAddingItem(object sender, MercatorUi.Engine.Gescom.BillingEngine.PenguinVirtualScannerAddingItemEventArgs e)
        {
            e.Item.Add("id_article", e.DataGridViewRow.Cells["id_article"].Value.ToString());
        }

        private void BillingEngine_PenguinVirtualScannerDataPrepared(object sender, MercatorUi.Engine.Gescom.BillingEngine.PenguinVirtualScannerDataPreparedEventArgs e)
        {
            e.Xaml = "<StackLayout Orientation=\"Horizontal\">"
                       + "<m:Image Table=\"STOCK\" Index=\"S_ID\" Value=\"{Binding Path=Data[id_article]}\" Field=\"S_IMAGE1\" WidthRequest=\"40\" HeightRequest=\"40\" Margin=\"0,0,20,0\" />"
                       + "<StackLayout VerticalOptions=\"Center\">"
                           + e.Xaml
                       + "</StackLayout>"
                   + "</StackLayout>";
        }
    }
}