Revision aba9e6d9 trunk/Pithos.Client.WPF/Shell/FeedbackViewModel.cs

b/trunk/Pithos.Client.WPF/Shell/FeedbackViewModel.cs
4 4
// </copyright>
5 5
// -----------------------------------------------------------------------
6 6

  
7
using System.Collections.Specialized;
7 8
using System.ComponentModel.Composition;
8 9
using System.Diagnostics;
9 10
using System.Diagnostics.Contracts;
......
95 96
            TryClose();
96 97
        }
97 98

  
98
        private async void PostForm(string formUrl, string token,Dictionary<string, string> fields)
99
        private void PostForm(string formUrl, string token,Dictionary<string, string> fields)
99 100
        {
100 101

  
101 102
            if (String.IsNullOrWhiteSpace(formUrl))
......
106 107
                throw new ArgumentNullException("fields");
107 108
            Contract.EndContractBlock();
108 109

  
109
            var request = WebRequest.Create(formUrl);
110
            request.Method = "POST";
111
            request.Headers.Add("X-Auth-Token",token);
112 110

  
111
            var client = new WebClient();
112
            client.Headers.Add("X-Auth-Token", token);
113 113

  
114
            var builder = new StringBuilder();
115
            foreach (var field in fields)
116
            {
117
                builder.AppendFormat("{0}={1}&", field.Key, Uri.EscapeDataString(field.Value));
118
            }
119

  
120
            var postData = builder.ToString().TrimEnd('&');
121
            var byteArray = Encoding.UTF8.GetBytes(postData);
122

  
123
            request.ContentType = "application/x-www-form-urlencoded";
124
            request.ContentLength = byteArray.Length;
125
            using (var stream = request.GetRequestStream())
114
            var values=new NameValueCollection();
115
            fields.Apply(field => values.Add(field.Key, Uri.EscapeDataString(field.Value)));
116
            try
126 117
            {
127
                stream.Write(byteArray, 0, byteArray.Length);
118
                client.UploadValues(formUrl, values);
128 119
            }
129
            
130

  
131
            // Get the response.
132
            var response = await request.GetResponseAsync();
133

  
134

  
135
            var webResponse = ((HttpWebResponse)response);
136
            var result=webResponse.StatusCode;
137
            if (result != HttpStatusCode.OK)
120
            catch (WebException exc)
138 121
            {
139
                // Get the stream containing content returned by the server.
140
                using (var responseStream = webResponse.GetResponseStream())
141
                using (var reader = new StreamReader(responseStream))
142
                {
143
                    var responseFromServer = reader.ReadToEnd();
144
                    Log.WarnFormat("Unexpected status returned from feedback form: {0} - {1}\r\n{2}",result,webResponse.StatusDescription, responseFromServer);                    
145
                }
122
                Log.WarnFormat("Unexpected status returned from feedback form: {0} - {1}", exc.Status,exc.Message);                    
146 123
            }
147
            response.Close();
148 124
        }
149 125
    }
150 126
}

Also available in: Unified diff