private static void OnTimerCallback(object state) { var data = (TokenRefreshData)state; try { var user = User.GetLoggedInUser(data.UserId); if (user != null) { var sessionPointer = user.Handle.GetSessionPointer(data.RealmPath); var session = Session.Create(sessionPointer); if (session != null) { RefreshAccessToken(session, reportErrors: false).ContinueWith(_ => { user.Handle.Dispose(); session.Handle.Dispose(); }); } } } catch { } finally { Timer timer; if (_tokenRefreshTimers.TryRemove(data.RealmPath, out timer)) { timer.Dispose(); } } }
private static void OnTimerCallback(object state) { var data = (TokenRefreshData)state; try { var user = User.GetLoggedInUser(data.UserId, data.ServerUrl); if (user != null && user.Handle.TryGetSession(data.RealmPath, out var sessionHandle)) { var session = new Session(sessionHandle); RefreshAccessTokenAsync(session, reportErrors: false).ContinueWith(_ => { user.Handle.Close(); session.CloseHandle(); }); } } catch { } finally { if (_tokenRefreshTimers.TryRemove(data.RealmPath, out var timer)) { timer.Dispose(); } } }