Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }