private static HttpRequestMessage BuildRequestWithHeaders(this ClientConfiguration configuration, RequestDescriptor requestDescriptor, string hostOrigin, Dictionary <string, object> context = null)
        {
            var safeContext = context ?? new Dictionary <string, object>();

            if (hostOrigin != null)
            {
                safeContext["hostOrigin"] = hostOrigin;
            }

            var request = requestDescriptor.BuildRequest(safeContext);

            configuration.AddConfigurationVersionIdHeader(request);
            configuration.AddTimeoutHeader(request, requestDescriptor);

            return(request);
        }