Ejemplo n.º 1
0
        internal HttpRequestMessage CreateRequestMessage(TfsRestRequest request)
        {
            UriBuilder url = new UriBuilder(Configuration.Url);

            url.Path  = UrlHelpers.JoinPath(Configuration.Url.AbsolutePath, GetRequestPath(request));
            url.Query = GetRequestQuery(request);

            HttpRequestMessage message = new HttpRequestMessage(request.Method, url.Uri);

            message.Headers.UserAgent.ParseAdd(
                Configuration.UserAgent ?? DefaultUserAgent);

            foreach (KeyValuePair <string, object> header in request.Headers)
            {
                message.Headers.Add(header.Key, header.Value.ToString());
            }

            string body = request.GetBody();

            if (body != null)
            {
                message.Content = new StringContent(body, Encoding.UTF8, "application/json");
            }

            return(message);
        }
Ejemplo n.º 2
0
        public async Task <T> Execute <T>(TfsRestRequest request) where T : new()
        {
            HttpResponseMessage responseMessage = await SendRequest(request);

            string responseContent = await responseMessage.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <T>(responseContent));
        }
Ejemplo n.º 3
0
        private string GetRequestPath(TfsRestRequest request)
        {
            string path = request.Resource;

            foreach (KeyValuePair <string, object> urlSegment in request.UrlSegments)
            {
                path = path.Replace(String.Format("{{{0}}}", urlSegment.Key), FormatValue(urlSegment.Value));
            }

            return(path);
        }
Ejemplo n.º 4
0
        private async Task <HttpResponseMessage> SendRequest(TfsRestRequest request)
        {
            HttpRequestMessage requestMessage = CreateRequestMessage(request);

            using (HttpClient client = CreateClient())
            {
                HttpResponseMessage responseMessage = await CreateClient().SendAsync(requestMessage);
                await HandleResponse(responseMessage);

                return(responseMessage);
            }
        }
Ejemplo n.º 5
0
        private string GetRequestQuery(TfsRestRequest request)
        {
            StringBuilder requestPath    = new StringBuilder();
            int           parameterCount = 0;

            foreach (KeyValuePair <string, object> parameter in request.Parameters)
            {
                if (parameterCount++ > 0)
                {
                    requestPath.Append('&');
                }

                requestPath.Append(Uri.EscapeUriString(parameter.Key));
                requestPath.Append('=');
                requestPath.Append(Uri.EscapeUriString(FormatValue(parameter.Value)));
            }

            return(requestPath.ToString());
        }
Ejemplo n.º 6
0
        public async Task Execute(TfsRestRequest request, Stream output)
        {
            HttpResponseMessage responseMessage = await SendRequest(request);

            await responseMessage.Content.CopyToAsync(output);
        }
Ejemplo n.º 7
0
 public async Task Execute(TfsRestRequest request)
 {
     await SendRequest(request);
 }