public async Task <BC_CustomerCoordinates> UpdateCustomer(BC_Customer customer, AzureMapResults azureMapResults, string filter) { try { using (var client = new HttpClient()) { var coords = new BC_CustomerCoordinates(); coords.NblLatitude = azureMapResults.Results.ElementAt(0).Position.Lat; coords.NblLogitude = azureMapResults.Results.ElementAt(0).Position.Lon; coords.No = customer.No; var apiUpdateEndpoint = apiEndpoint + filter; var request = new HttpRequestMessage(HttpMethod.Patch, new Uri(apiUpdateEndpoint)); var json = JsonConvert.SerializeObject(coords); request.Content = new StringContent(json, Encoding.UTF8, "application/json"); request.Headers.TryAddWithoutValidation("If-Match", customer.OdataEtag); request.Headers.Authorization = new AuthenticationHeaderValue("Basic", this.authHeaderValue); var response = await client.SendAsync(request); if (response.StatusCode == HttpStatusCode.OK) { var responseJson = await response.Content.ReadAsStringAsync(); var customerCoord = JsonConvert.DeserializeObject <BC_CustomerCoordinates>(responseJson); return(customerCoord); } else { Debugger.Break(); } return(null); } } catch (Exception ex) { log.LogError(ex.Message.ToString()); return(null); } }
public async Task <Nav_CustomerCoordinates> UpdateCustomer(string apiEntity, Nav_Customer customer, AzureMapResults azureMapResults, string filter) { try { AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false); var company = System.Net.WebUtility.UrlEncode(config.NavWebServiceCompany); var endPoint = string.Format(config.NavWebServiceMainUrl, company, apiEntity); var ntlmHandler = new HttpClientHandler { Credentials = new NetworkCredential(config.NavWebServiceUser, config.NavWebServicePassword, config.NavWebServiceDomain) }; using (var client = new HttpClient(ntlmHandler)) { var coords = new Nav_CustomerCoordinates(); coords.Prime365Lat = (decimal)azureMapResults.Results.ElementAt(0).Position.Lat; coords.Prime365Lng = (decimal)azureMapResults.Results.ElementAt(0).Position.Lon; coords.No = customer.No; var apiUpdateEndpoint = endPoint + filter; var request = new HttpRequestMessage(HttpMethod.Patch, new Uri(apiUpdateEndpoint)); var json = JsonConvert.SerializeObject(coords); request.Content = new StringContent(json, Encoding.UTF8, "application/json"); request.Headers.TryAddWithoutValidation("If-Match", customer.OdataEtag); var response = await client.SendAsync(request); if (response.StatusCode == HttpStatusCode.OK) { var responseJson = await response.Content.ReadAsStringAsync(); var customerCoord = JsonConvert.DeserializeObject <Nav_CustomerCoordinates>(responseJson); return(customerCoord); } return(null); } } catch (Exception) { return(null); } }