private async Task <CaseDetails> GetCustomerContactAsync(String cxmEndPoint, String cxmAPIKey, String caseReference, String taskToken) { CaseDetails caseDetails = new CaseDetails(); HttpClient cxmClient = new HttpClient(); cxmClient.BaseAddress = new Uri(cxmEndPoint); String requestParameters = "key=" + cxmAPIKey; HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "/api/service-api/norbert/case/" + caseReference + "?" + requestParameters); try { HttpResponseMessage response = cxmClient.SendAsync(request).Result; if (response.IsSuccessStatusCode) { HttpContent responseContent = response.Content; String responseString = responseContent.ReadAsStringAsync().Result; JObject caseSearch = JObject.Parse(responseString); caseDetails.customerContact = (String)caseSearch.SelectToken("values.enquiry_details"); } else { await SendFailureAsync("Getting case details for " + caseReference, response.StatusCode.ToString()); Console.WriteLine("ERROR : GetStaffResponseAsync : " + request.ToString()); Console.WriteLine("ERROR : GetStaffResponseAsync : " + response.StatusCode.ToString()); } } catch (Exception error) { await SendFailureAsync("Getting case details for " + caseReference, error.Message); Console.WriteLine("ERROR : GetStaffResponseAsync : " + error.StackTrace); } return(caseDetails); }
private async Task <Boolean> GetCaseDetailsAsync() { Boolean success = false; CaseDetails caseDetails = await GetCustomerContactAsync(cxmEndPoint, cxmAPIKey, caseReference, taskToken); try { if (!String.IsNullOrEmpty(caseDetails.customerContact)) { success = await StoreContactToDynamoAsync(caseReference, caseDetails.customerContact); } } catch (Exception error) { await SendFailureAsync(error.Message, "GetCaseDetailsAsync"); Console.WriteLine("ERROR : GetCaseDetailsAsync : " + error.Message); success = false;; } return(success); }