/* * TAG FOUND EVENT: * This event occurs when the user passes a NFC card near the reader. * It checks if the UID is valid and unlock the door if so. */ private void TagFound(string uid) { if (!scanWindow.IsShowing()) { // Check authorization var authorized = DataHelper.CheckCardId(uid); // Show access window accessWindow.Show(authorized); // Log the event string logText; Log log; if (authorized) { // Access granted UnlockDoor(); logText = "Card \"" + uid + "\" inserted. Authorized access."; log = new Log(Log.TypeAccess, null, uid, logText); } else { // Access denied logText = "Card \"" + uid + "\" inserted. Access denied!"; log = new Log(Log.TypeInfo, logText); } DebugOnly.Print(logText); // Add log to loglist DataHelper.AddLog(log); } else { // Log new cardID var newCardIdLog = new Log( Log.TypeAccess, pendingPin, uid, "Card \"" + uid + "\" has been added for pin \"" + pendingPin + "\"."); // Update CardID in userList DataHelper.AddCardId(pendingPin, uid); // Send urgent log DataHelper.AddLog(newCardIdLog, true); var cardAddedAlert = new AlertWindow(WindowAlertPeriod); cardAddedAlert.SetText("NFC card added!"); cardAddedAlert.SetPositiveButton("Ok", delegate { cardAddedAlert.Dismiss(); }); cardAddedAlert.Show(); DebugOnly.Print("Card added to user with pin \"" + pendingPin + "\""); } }
/* * PIN FOUND EVENT: * This event occurs when the user inserts a pin code. It checks if the pin is valid and unlock the door if so. * If the pin has no related CardId it prompts the user to add it. */ private void PinFound(string pin) { string masterPin = SettingsManager.Get(SettingsManager.MasterPin); // Check master pin if (String.Compare(masterPin, pin) == 0) { maintenanceWindow.Show(); return; } // Check authorization var authorized = DataHelper.CheckPin(pin); var nullCardId = DataHelper.PinHasNullCardId(pin); // Log the event string logText; Log log; if (authorized) { // Access granted UnlockDoor(); logText = "Pin \"" + pin + "\" inserted. Authorized access."; log = new Log(Log.TypeAccess, pin, logText); } else { // Access denied logText = "Pin \"" + pin + "\" inserted. Access denied!"; log = new Log(Log.TypeInfo, logText); } DebugOnly.Print(logText); // Add log to loglist DataHelper.AddLog(log); if (nullCardId && authorized) { // Null CardID detected, prompt the user to set one var nullCardIdAlert = new AlertWindow(WindowAlertPeriod); nullCardIdAlert.SetText( "It happears that this user has no related NFC card.\nDo you want to scan it now?"); nullCardIdAlert.SetPositiveButton("Yes", delegate { // User wants to add a new NFC card pendingPin = pin; scanWindow.Show(); }); nullCardIdAlert.SetNegativeButton("No", delegate { // User doesn't want to add a new NFC card nullCardIdAlert.Dismiss(); }); nullCardIdAlert.Show(); } else { // Everything is fine accessWindow.Show(authorized); } }