diff --git a/src/Lando/Cardreader.cs b/src/Lando/Cardreader.cs index 3c45da9..3e57c44 100644 --- a/src/Lando/Cardreader.cs +++ b/src/Lando/Cardreader.cs @@ -158,10 +158,12 @@ internal virtual void OnCardConnected(object sender, WatcherCardEventArgs e) internal virtual void OnCardDisconnected(object sender, WatcherCardEventArgs e) { + var card = new ContactlessCard(e.Card); + Logger.TraceEvent(TraceEventType.Verbose, 0, "Cardreader: Save invocation of CardDisconnected"); Logger.Flush(); - CardDisconnected.SafeInvoke(this, new CardreaderEventArgs((string)null)); + CardDisconnected.SafeInvoke(this, new CardreaderEventArgs(card, e.Card.CardreaderName); } } } \ No newline at end of file diff --git a/src/Lando/Watcher/Watcher.cs b/src/Lando/Watcher/Watcher.cs index d5f8301..fb2212f 100644 --- a/src/Lando/Watcher/Watcher.cs +++ b/src/Lando/Watcher/Watcher.cs @@ -224,7 +224,7 @@ private void Watch() // reset previously connected card and raise the card connected event ForgotAboutCardreaderHadCard(cardreaderStatus.Name); - RaiseCardDisconnectedEvent(); + RaiseCardDisconnectedEvent(currentCard); } } if (newStatuses.Contains(CardreaderStatus.StatusType.CardreaderDisconnected)) @@ -256,12 +256,12 @@ private void RaiseCardConnectedEvent(Card connectedLowlevelCard) AsyncOperation.Post(cb, null); } - private void RaiseCardDisconnectedEvent() + private void RaiseCardDisconnectedEvent(Card connectedLowlevelCard) { Logger.TraceEvent(TraceEventType.Verbose, 0, "Raising CardDisconnected event"); Logger.Flush(); - SendOrPostCallback cb = state => CardDisconnected(null, new WatcherCardEventArgs()); + SendOrPostCallback cb = state => CardDisconnected(null, new WatcherCardEventArgs(connectedLowlevelCard)); AsyncOperation.Post(cb, null); }