Example using CardReaderEventProvider to wait for a card service

Concept

  1. Construct a CardReaderEventProvider object.

  2. Register event handlers.

  3. Request a specific card service.

  4. Process the events raised and consume available service objects.

Example using CardReaderEventProvider

C# Copy imageCopy
..
using BasicCard.Framework;

namespace ExampleNamespace
{
    public partial class MainForm : Form
    {
        private CardReaderEventProvider eventProvider;
        private ExampleCardService service=null;

        public MainForm()
        {
            InitializeComponent();
            eventProvider = new CardReaderEventProvider(this);            
            eventProvider.ServiceEvent += new EventHandler<CardServiceEventArgs>(eventProvider_ServiceEvent);
            eventProvider.RequestService(typeof(ExampleCardService), false, null);
        }

        private void eventProvider_ServiceEvent(object sender, CardServiceEventArgs e)
        {
            switch(e.EventType)
            {
                case CardServiceEventType.ServiceAvailable:
                    if (null == service)
                    {
                        service = (ExampleCardService)e.CardService;
                        e.ServiceConsumed = true;
                        UpdateFormData();
                    }
                    break;
                case CardServiceEventType.ServiceUnavailable:
                    service = null;
                    UpdateFormData();
                    break;
            }            
        }

        private void UpdateFormData()
        {
            try
            {
                if (null != service)
                {
                    // Todo: Use service to show data in form
                }
                else
                {
                    // Todo: Service has become unavailble, update form
                }
            }
            catch (Exception ex)
            {
                // Todo: Process exceptions here
            }
        }
    }
}

See Also