/// <summary>
        /// Get list of tenants the authenticated user is declared to
        /// </summary>
        /// <param name="principal">User's principal</param>
        /// <returns></returns>
        public async Task <AzureResourcesViewModel> GetTenants(ClaimsPrincipal principal, string tenantId = null)
        {
            AzureResourcesViewModel vm = new AzureResourcesViewModel();

            string currentTenantId = _tokenHelper.GetClaimValue(principal, Constantes.ClaimsType.TenantId);
            string armToken        = await _tokenHelper.GetCurrentAuthorizationToken(currentTenantId);

            // all tenants
            string json = await _azureRepositories.GetArmRequest("tenants", armToken);

            vm.Tenants = Tenant.DeserializeTenantList(json);

            //foreach (Tenant tenant in vm.Tenants)
            //{
            //    Uri uri = new Uri("https://localhost:44361/signin-oidc");
            //    string graphToken = await _tokenHelper.GetAuthorizationToken(tenant.TenantId, Constantes.Endpoints.GraphEndpoint, uri, principal, armToken);
            //    json = await _azureRepositories.GetGraphRequest($"{tenant.TenantId}/tenantDetails", graphToken);

            //    Tenant.DeserializeTenantInfo(json, tenant);
            //}

            //if (tenantId != null)
            //{
            //    currentTenantId = tenantId;

            //    //armToken = await _tokenHelper.GetAuthorizationToken(currentTenantId, Constantes.Endpoints.ArmEndpoint);
            //    //armToken = await _tokenHelper.GetAuthorizationToken(currentTenantId, $"https://graph.windows.net/{currentTenantId}/tenantDetails");
            //    armToken = await _tokenHelper.GetAuthorizationToken(currentTenantId, Constantes.Endpoints.GraphEndpoint);
            //    json = await _azureRepositories.GetGraphRequest($"{currentTenantId}/tenantDetails", armToken);
            //    //http://www.cloudidentity.com/blog/2013/10/14/adal-windows-azure-ad-and-multi-resource-refresh-tokens/
            //    //https://graph.windows.net/{currentTenantId}/tenantDetails
            //}

            // subscriptions
            json = await _azureRepositories.GetArmRequest("subscriptions", armToken);

            vm.Subscriptions = Subscription.Deserialize(json);

            vm.Tenants.ForEach(t =>
            {
                t.IsCurrentTenant = t.TenantId == currentTenantId;
            });

            return(vm);
        }