protected virtual async Task <TokenResponse> GetToken()
        {
            var restFactory = new RestClientFactory();
            var restClient  = restFactory.CreateClient(_authorityDetails.ClientUrl);
            var authRequest = restFactory.CreateRequest("token", Method.POST);

            authRequest.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            authRequest.AddHeader("Accept", "application/json");
            authRequest.AddParameter("grant_type", "client_credentials");
            authRequest.AddParameter("resource", _authorityDetails.ResourceUrl);
            restClient.Authenticator = new HttpBasicAuthenticator(_authorityDetails.ClientId, _authorityDetails.ClientSecret);
            var response = await restClient.ExecuteAsync <TokenResponse>(authRequest);

            var token = response?.Data;

            return(token);
        }