private static Uri GetAccountApiEndpoint(OAuthDataServiceAdapter dataServiceAdapter, ServiceVersionAdapter versionAdapter, Uri apiServer)
{
RetryPolicy retryPolicy = new RetryPolicy(
new WebRequestTransientErrorDetectionStrategy(),
RetryStrategyFactory.DefaultStrategy());
Uri apiEndpoint = null;
retryPolicy.ExecuteAction(
() =>
{
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(apiServer);
request.AllowAutoRedirect = false;
dataServiceAdapter.AddAccessTokenToRequest(request);
versionAdapter.AddVersionToRequest(request);
using (WebResponse response = request.GetResponse())
{
apiEndpoint = GetAccountApiEndpointFromResponse(response);
}
}
);
return apiEndpoint;
}