public bool Login() { AuthenticationState authentication = AuthenticationState.Unknown; _systemClient = new SystemClientHttp(_dpmTarget); TpsLogManager <Semafone> .Debug("Created SystemClientHttp using" + _dpmTarget + " for " + _webSocket); _telephonyClient = new TelephonyClientHttp(_dpmTarget); TpsLogManager <Semafone> .Debug("Created TelephonyClientHttp using" + _dpmTarget + " for " + _webSocket); _secureDataClient = new SecureDataClientHttp(_dpmTarget); TpsLogManager <Semafone> .Debug("Created SecureDataClientHttp using" + _dpmTarget + " for " + _webSocket); try { // Attempt to login to the DPM (Semafone), the SemafoneClientSession reference // passed in will be filled with our session information authentication = _systemClient.Login(ClientSession); } catch (SemafoneClientException e) { TpsLogManager <Semafone> .Error("Failed to login to Semafone" + " for " + _webSocket + ": " + e.Message + e.StackTrace); if (e.Error != null) { TpsLogManager <Semafone> .Error("Failed to EnterSecureMode : " + e.Error.cause); } } try { if (authentication != AuthenticationState.Authenticated) { // If we failed to login, we cannot proceed TpsLogManager <Semafone> .Error("Not authenticated, cannot proceed"); } else { return(true); } } catch (Exception e) { TpsLogManager <Semafone> .Error("Failed to login to Semafone: Checking Authentication state : " + e.Message + e.StackTrace); } return(false); }
private async Task AuthenticateService() { try { await _systemClient.Login(new SystemLoginRq { PassCode = _passCode, AccessingSystemId = AccessingSystemId, SystemId = _systemId }).Bind(async l => { _sessionKey = l.SystemSessionInfo.SessionId; await this.ChangeState(SystemSessionEvent.Authenticated); _sessionChanged.OnNext(_sessionKey); var timeSpan = l.SystemSessionInfo.ExpiresOn.Subtract(DateTime.Now).Subtract(_extendSessionBuffer); if (_extendSession != null) { _extendSession.Dispose(); _extendSession = null; } _extendSession = new Timer( (o) => { Task.Run(async() => { await this.ChangeState(SystemSessionEvent.SessionExpiring); }); }, null, timeSpan, timeSpan); return(l.ToResultMonad()); }).Error(async e => { log.Error($"Failure to login."); await ChangeState(SystemSessionEvent.Retry); }); } catch (Exception ex) { log.Error(ex, ex.Message); await ChangeState(SystemSessionEvent.Retry); } }