Example #1
0
        /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
        /// <exception cref="GeoClientException">A server side error occurred.</exception>
        public async Task SaveItemsAsync(GenericRequestOfAddressAndPerson request, CancellationToken cancellationToken)
        {
            var url_ = string.Format("{0}/{1}", BaseUrl, "api/Geo/SaveItems");

            var client_  = new HttpClient();
            var request_ = new HttpRequestMessage();

            PrepareRequest(client_, ref url_);
            var content_ = new StringContent(JsonConvert.SerializeObject(request, new JsonConverter[] { new Newtonsoft.Json.Converters.StringEnumConverter(), new JsonExceptionConverter() }));

            content_.Headers.ContentType.MediaType = "application/json";
            request_.Content    = content_;
            request_.Method     = new HttpMethod("POST");
            request_.RequestUri = new Uri(url_);
            var response_ = await client_.SendAsync(request_, HttpCompletionOption.ResponseContentRead, cancellationToken).ConfigureAwait(false);

            ProcessResponse(client_, response_);

            var responseData_ = await response_.Content.ReadAsByteArrayAsync().ConfigureAwait(false);

            var status_ = ((int)response_.StatusCode).ToString();

            if (status_ == "204")
            {
                return;
            }
            else
            if (status_ == "450")
            {
                var result_ = default(Exception);
                try
                {
                    if (responseData_.Length > 0)
                    {
                        result_ = JsonConvert.DeserializeObject <Exception>(Encoding.UTF8.GetString(responseData_, 0, responseData_.Length), new JsonConverter[] { new Newtonsoft.Json.Converters.StringEnumConverter(), new JsonExceptionConverter() });
                    }
                }
                catch (Exception exception)
                {
                    throw new GeoClientException("Could not deserialize the response body.", status_, responseData_, exception);
                }
                if (result_ == null)
                {
                    result_ = new Exception();
                }
                result_.Data.Add("HttpStatus", status_);
                result_.Data.Add("ResponseData", Encoding.UTF8.GetString(responseData_, 0, responseData_.Length));
                throw new GeoClientException <Exception>("A server side error occurred.", status_, responseData_, result_, result_);
            }
            else
            {
            }

            throw new GeoClientException("The HTTP status code of the response was not expected (" + (int)response_.StatusCode + ").", status_, responseData_, null);
        }
Example #2
0
     /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
     /// <exception cref="GeoClientException">A server side error occurred.</exception>
     public async System.Threading.Tasks.Task SaveItemsAsync(GenericRequestOfAddressAndPerson request, System.Threading.CancellationToken cancellationToken)
     {
         var url_ = string.Format("{0}/{1}", BaseUrl, "api/Geo/SaveItems");
 
         using (var client_ = await CreateHttpClientAsync(cancellationToken).ConfigureAwait(false))
 		{
 			var request_ = await CreateHttpRequestMessageAsync(cancellationToken).ConfigureAwait(false);
 			PrepareRequest(client_, ref url_);
 			var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, new Newtonsoft.Json.JsonConverter[] { new Newtonsoft.Json.Converters.StringEnumConverter(), new JsonExceptionConverter() }));
 			content_.Headers.ContentType.MediaType = "application/json";
 			request_.Content = content_;
 			request_.Method = new System.Net.Http.HttpMethod("POST");
 			request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute);
 			var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseContentRead, cancellationToken).ConfigureAwait(false);
 			ProcessResponse(client_, response_);
 
 			var responseData_ = await response_.Content.ReadAsByteArrayAsync().ConfigureAwait(false); 
 			var status_ = ((int)response_.StatusCode).ToString();
 
 			if (status_ == "204") 
 			{
 				return;
 			}
 			else
 			if (status_ == "450") 
 			{
 				var result_ = default(System.Exception); 
 				try
 				{
 					if (responseData_.Length > 0)
 						result_ = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Exception>(System.Text.Encoding.UTF8.GetString(responseData_, 0, responseData_.Length), new Newtonsoft.Json.JsonConverter[] { new Newtonsoft.Json.Converters.StringEnumConverter(), new JsonExceptionConverter() });                                
 				} 
 				catch (System.Exception exception) 
 				{
 					throw new GeoClientException("Could not deserialize the response body.", status_, responseData_, exception);
 				}
 				if (result_ == null)
 					result_ = new System.Exception();
 				result_.Data.Add("HttpStatus", status_);
 				result_.Data.Add("ResponseData", System.Text.Encoding.UTF8.GetString(responseData_, 0, responseData_.Length));
 				throw new GeoClientException<System.Exception>("A custom error occured.", status_, responseData_, result_, result_);
 			}
 			else
 			if (status_ != "200" && status_ != "204")
 				throw new GeoClientException("The HTTP status code of the response was not expected (" + (int)response_.StatusCode + ").", status_, responseData_, null);
 		}
 	}
Example #3
0
 /// <exception cref="GeoClientException">A server side error occurred.</exception>
 public Task SaveItemsAsync(GenericRequestOfAddressAndPerson request)
 {
     return(SaveItemsAsync(request, CancellationToken.None));
 }
Example #4
0
 /// <exception cref="GeoClientException">A server side error occurred.</exception>
 public System.Threading.Tasks.Task SaveItemsAsync(GenericRequestOfAddressAndPerson request)
 {
     return SaveItemsAsync(request, System.Threading.CancellationToken.None);
 }