Bug fix : 6x try / catch to resolve crashes caused by GemCard, etc., ver. 3.1.1805

This commit is contained in:
Milan Hanajik
2021-11-11 08:19:35 +01:00
parent 44fc7b92fd
commit 335fce3e39
6 changed files with 127 additions and 73 deletions
+25 -7
View File
@@ -4,6 +4,7 @@
using System;
using System.Drawing;
using System.Windows.Forms;
using log4net;
using Common;
using GemCard;
using TBF.Resources;
@@ -17,6 +18,8 @@ namespace TBF.UI.Shared
/// </summary>
public partial class LoginDlgWithBenchSelection : Form
{
private static readonly ILog log = LogManager.GetLogger(typeof(LoginDlgWithBenchSelection));
public const string UseTheTagPassword = "UseTheTag0293578";
/// Private fields
@@ -108,10 +111,16 @@ namespace TBF.UI.Shared
string[] cardReaders = card.ListReaders();
if (cardReaders != null)
{
foreach (var crd in cardReaders)
{
log.WarnFormat("SMART card reader found: {0}", crd);
}
foreach (var crd in cardReaders)
{
if (crd.Contains("NFC"))
{
log.ErrorFormat("SMART card reader selected: {0}", crd);
smartCardReader = crd; /// NFC smart card reader detected
break;
}
@@ -241,14 +250,22 @@ namespace TBF.UI.Shared
void OnCardInserted(object sender, CardInsertedEventArgs args)
{
BackColor = Color.Green;
card.Connect(smartCardReader, SHARE.Shared, PROTOCOL.T0orT1);
string tag = string.Empty;
try
{
BackColor = Color.Green;
card.Connect(smartCardReader, SHARE.Shared, PROTOCOL.T0orT1);
/// Read the serial number of the card
APDUResponse response = card.Transmit(new APDUCommand(0xFF, 0xCA, 0x00, 0x00, null, 7));
string tag = response.ToString();
/// Read the serial number of the card
APDUResponse response = card.Transmit(new APDUCommand(0xFF, 0xCA, 0x00, 0x00, null, 7));
tag = response.ToString();
card.Disconnect(DISCONNECT.Leave);
card.Disconnect(DISCONNECT.Leave);
}
catch
{
tag = string.Empty;
}
if (testBenchComboBox.SelectedItem != null)
{
@@ -281,7 +298,8 @@ namespace TBF.UI.Shared
{
if (!string.IsNullOrEmpty(smartCardReader))
{
card.StopCardEvents();
try { card.StopCardEvents(); }
catch { }
}
}
}