public IOAuthAccessToken GetUserOAuthToken(IEntitySession session, Guid userId, string serverName, string accountName = null)
        {
            accountName = accountName ?? Settings.DefaultAccountName;
            var context     = session.Context;
            var utcNow      = context.App.TimeService.UtcNow;
            var accessToken = session.EntitySet <IOAuthAccessToken>()
                              .Where(t => t.Account.Server.Name == serverName && t.UserId == userId && t.Status == OAuthTokenStatus.Active)
                              .OrderByDescending(t => t.RetrievedOn).FirstOrDefault();

            if (accessToken != null && accessToken.ExpiresOn < utcNow)
            {
                session.UpdateStatus(accessToken.Id, OAuthTokenStatus.Expired); //update directly in db
                return(null);
            }
            return(accessToken);
        }
 public void UpdateTokenStatus(IEntitySession session, Guid tokenId, OAuthTokenStatus status)
 {
     session.UpdateStatus(tokenId, status);
 }