//using System;
//using CoreFoundation;
//using CoreNFC;
//using Foundation;
//using NFC;

//namespace Borepin.iOS.CNFC
//{
//    public class Reader : NFCTagReaderSessionDelegate, IReader
//    {
//        public event ReaderEventHandler CardDiscovered;
//        public event ReaderEventHandler CardLost;

//        private NFCReaderSession _session = null;
//        private DispatchQueue _queue;

//        public void Start()
//        {
//            _queue = new DispatchQueue("NFC Reader Queue", true);

//            // sessions cannot be reused
//            _session = new NFCTagReaderSession(NFCPollingOption.Iso14443, this, _queue)
//            {
//                AlertMessage = "TODO",
//            };

//            if (_session == null)
//            {
//                Console.WriteLine("Oh no! The session is null!");
//            }

//            _session.BeginSession();
//        }

//        public void Stop()
//        {
//            _session?.InvalidateSession();
//            _session = null;
//        }

//        public override void DidDetectTags(NFCTagReaderSession session, INFCTag[] tags)
//        {
//            Console.WriteLine("Did detect tags");

//            Console.WriteLine(tags[0].Type);

//            //INFCIso7816Tag tag = tags[0].GetNFCIso7816Tag();
//            INFCMiFareTag tag = tags[0].GetNFCMiFareTag();
//            if (tag != null)
//            {
//                Console.WriteLine("Card ist valid");
//                CardDiscovered?.Invoke(this, new Card(session, tag));
//            }
//            else
//            {
//                Console.WriteLine("Card is not ISO7816");
//            }
//        }

//        public override void DidInvalidate(NFCTagReaderSession session, NSError error)
//        {
//            // TODO: decide what to do
//            Console.WriteLine("reader session invalidated");
//        }
//    }
//}