Example #1
0
        // GET /Authorization/Disconnect
        public async Task <ActionResult> Disconnect()
        {
            var client = new XeroClient(XeroConfig.Value, httpClientFactory);

            var xeroToken  = TokenUtilities.GetStoredToken();
            var utcTimeNow = DateTime.UtcNow;

            if (utcTimeNow > xeroToken.ExpiresAtUtc)
            {
                xeroToken = (XeroOAuth2Token)await client.RefreshAccessTokenAsync(xeroToken);

                TokenUtilities.StoreToken(xeroToken);
            }

            string accessToken = xeroToken.AccessToken;
            Tenant xeroTenant  = xeroToken.Tenants[0];

            await client.DeleteConnectionAsync(xeroToken, xeroTenant);

            TokenUtilities.DestroyToken();

            return(RedirectToAction("Index", "Home"));
        }
        public async Task <ActionResult> Delete(string connectionId)
        {
            var xeroToken  = TokenUtilities.GetStoredToken();
            var utcTimeNow = DateTime.UtcNow;

            if (utcTimeNow > xeroToken.ExpiresAtUtc)
            {
                var client = new XeroClient(XeroConfig.Value, httpClientFactory);
                xeroToken = (XeroOAuth2Token)await client.RefreshAccessTokenAsync(xeroToken);

                TokenUtilities.StoreToken(xeroToken);
            }

            string accessToken      = xeroToken.AccessToken;
            Guid   connectionIdGuid = Guid.Parse(connectionId);

            var IdentityApi = new IdentityApi();
            await IdentityApi.DeleteConnectionAsync(accessToken, connectionIdGuid);

            TokenUtilities.DestroyToken();

            return(RedirectToAction("Index", "Home"));
        }