public void NavigateTo(NavigatorEnums navigatorEnum) { // navigate if (navigatorEnum == NavigatorEnums.Authentication_SmartCard) { LayerWeb.LoadPageHtml("Authentication/SmartCard.html"); LayerWeb.RunScript("$('.status-text').css('color','#000').text('" + Resources.INFO_PLACE_SMARTCARD + "');"); SmartCardReaderUtil.Instance.StopSmartCardMonitor(); SmartCard.Instance.Start(); } else if (navigatorEnum == NavigatorEnums.Authentication_Fingerprint) { try { Session session = Session.Instance; Trinity.BE.User user = (Trinity.BE.User)session[CommonConstants.USER_LOGIN]; LayerWeb.LoadPageHtml("Authentication/FingerPrint.html"); LayerWeb.RunScript("$('.status-text').css('color','#000').text('" + Resources.INFO_PLACE_THUMBPRINT + "');"); Fingerprint.Instance.Start(new System.Collections.Generic.List <byte[]>() { user.LeftThumbFingerprint, user.RightThumbFingerprint }); } catch (System.IO.FileNotFoundException ex) { Console.WriteLine("File missing:\n"); Console.WriteLine(ex.FileName); } } else if (navigatorEnum == NavigatorEnums.Authentication_Facial) { Session session = Session.Instance; Trinity.BE.User user = (Trinity.BE.User)session[CommonConstants.USER_LOGIN]; if ((user.User_Photo1 == null || user.User_Photo1.Length == 0) && (user.User_Photo2 == null || user.User_Photo2.Length == 0)) { //Trinity.BE.PopupModel popupModel = new Trinity.BE.PopupModel(); //popupModel.Title = "Authorization Failed"; //popupModel.Message = "User '" + user.Name + "' doesn't have any photos"; //popupModel.IsShowLoading = false; //popupModel.IsShowOK = true; //LayerWeb.InvokeScript("showPopupModal", JsonConvert.SerializeObject(popupModel)); // Navigate to smartcard login page NavigateTo(NavigatorEnums.Authentication_SmartCard); return; } LayerWeb.LoadPageHtml("Authentication/FacialRecognition.html"); LayerWeb.RunScript("$('.status-text').css('color','#000').text('" + Resources.INFO_REMAIN_YOUR_FACE_STILL + "');"); FacialRecognition.Instance.OnFacialRecognitionFailed += Main_OnFacialRecognitionFailed; FacialRecognition.Instance.OnFacialRecognitionSucceeded += Main_OnFacialRecognitionSucceeded; FacialRecognition.Instance.OnFacialRecognitionProcessing += Main_OnFacialRecognitionProcessing; FacialRecognition.Instance.OnCameraInitialized += Main_OnCameraInitialized; List <byte[]> FaceJpg = new System.Collections.Generic.List <byte[]>() { user.User_Photo1, user.User_Photo2 }; this.Invoke((MethodInvoker)(() => { Point startLocation = new Point((Screen.PrimaryScreen.Bounds.Size.Width / 2) - 800 / 2, (Screen.PrimaryScreen.Bounds.Size.Height / 2) - 450 / 2); FacialRecognition.Instance.StartFacialRecognition(startLocation, FaceJpg); //LayerWeb.RunScript("$('.status-text').css('color','#000').text('Face authentication');"); })); } else if (navigatorEnum == NavigatorEnums.Authentication_NRIC) { _nric.Start(); } else if (navigatorEnum == NavigatorEnums.Supervisee) { // Handle income notifications Session session = Session.Instance; Trinity.BE.User user = (Trinity.BE.User)session[CommonConstants.USER_LOGIN]; if (user.Role == EnumUserRoles.Supervisee && user.Status == EnumUserStatuses.Blocked) { LayerWeb.ShowMessageAsync(Resources.INFO_YOU_HAVE_BEEN_BLOCKED); _jsCallCS.LogOut(); return; } _signalrClient = Client.Instance; _signalrClient.OnNewNotification += _signalrClient_OnNewNotification; if (this._timerCheckLogout != null) { if (this._timerCheckLogout.Enabled) { this._timerCheckLogout.Stop(); } this._timerCheckLogout.Start(); } _supervisee.Start(); } // set current page _currentPage = navigatorEnum; // display options in Authentication_SmartCard page if (_displayLoginButtonStatus && _currentPage == NavigatorEnums.Authentication_SmartCard) { _displayLoginButtonStatus = false; CSCallJS.DisplayLogoutButton(this.LayerWeb, _displayLoginButtonStatus); } // display options in the rest if (!_displayLoginButtonStatus && _currentPage != NavigatorEnums.Authentication_SmartCard) { _displayLoginButtonStatus = true; CSCallJS.DisplayLogoutButton(this.LayerWeb, _displayLoginButtonStatus); } }