private async Task RevokeToken(string userId)
        {
            var typeName = typeof(TokenResponse).FullName;

            var context = this.DbContext;
            var tokens  = await context.GoogleAuthData
                          .Where(o => o.UserId == userId && o.Type == typeName)
                          .ToArrayAsync();

            foreach (var item in tokens)
            {
                try
                {
                    var token          = JsonConvert.DeserializeObject <TokenResponse>(item.Value);
                    var flow           = GmailApiComponent.CreateFlow(userId);
                    var userCredential = new Google.Apis.Auth.OAuth2.UserCredential(flow, userId, token);

                    //Refresh the access token so we can promptly destroy it.
                    await userCredential.RefreshTokenAsync(CancellationToken.None);

                    await userCredential.RevokeTokenAsync(CancellationToken.None);
                }
                catch
                {
                    //TODO: Logging!
                }
            }
        }
        private async Task RevokeToken(string userId)
        {
            var typeName = typeof(TokenResponse).FullName;

            var context = this.DbContext;
            var tokens = await context.GoogleAuthData
                .Where(o => o.UserId == userId && o.Type == typeName)
                .ToArrayAsync();

            foreach (var item in tokens)
            {
                try
                {
                    var token = JsonConvert.DeserializeObject<TokenResponse>(item.Value);
                    var flow = GmailApiComponent.CreateFlow(userId);
                    var userCredential = new Google.Apis.Auth.OAuth2.UserCredential(flow, userId, token);

                    //Refresh the access token so we can promptly destroy it.
                    await userCredential.RefreshTokenAsync(CancellationToken.None);
                    await userCredential.RevokeTokenAsync(CancellationToken.None);
                }
                catch
                {
                    //TODO: Logging!
                }
            }
        }