예제 #1
0
        /// <summary>
        /// EventHandler of the <see cref="Timer.Elapsed"/> event.
        /// Refresh token and update timer(<paramref name="sender"/>).
        /// Fire failed or renewed events depending on the refresh token result
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CurrentTokenExpired(object sender, ElapsedEventArgs e)
        {
            var timer = sender as Timer;

            if (timer == null)
            {
                OnRenewTokenFailed(EventArgs.Empty);
                return;
            }

            timer.Stop();

            //try refreshing the token
            var renewalSuccessful = RetrieveAccessToken();

            if (!renewalSuccessful)
            {
                OnRenewTokenFailed(EventArgs.Empty);
                return;
            }

            SetTimerIntervalAndStart(timer);

            var args = new TokenRenewedEventArgs {
                TokenInfo = Info
            };

            OnTokenRenewed(args);
        }
예제 #2
0
 /// <summary>
 /// Fire the <see cref="TokenRenewed"/> event.
 /// </summary>
 /// <param name="e"></param>
 protected virtual void OnTokenRenewed(TokenRenewedEventArgs e)
 {
     TokenRenewed?.Invoke(this, e);
 }