/// <summary> /// CallPartnerCaseActivity /// </summary> /// <param name="activity"></param> /// <returns></returns> private async Task CallPartnerCaseActivity(CaseActivityRequest activity) { var logDic = new Dictionary <string, object> { { "PartnerCaseToken", activity.CaseNo }, { "CaseID", activity.PartnerCaseNo }, { "PartnerCaseStatusKey", activity.ParentCaseStatus.ToString() }, { "PartnerCaseTypeKey", activity.PartnerCaseType?.ToString() }, }; try { var partnerRequest = new PartnerCaseActivityRequest(); partnerRequest.Header = new RequestHeader() { RequestId = Guid.NewGuid().ToString(), }; partnerRequest.CaseId = activity.PartnerCaseNo; partnerRequest.PartnerCaseId = activity.CaseNo; partnerRequest.Status = activity.ParentCaseStatus.ToString(); if (activity.PartnerCaseType.HasValue) { partnerRequest.CaseType = activity.PartnerCaseType.ToString(); } //To do call Partner API await PartnerService.PublishCaseStatus(partnerRequest); } catch (Exception ex) { logDic.Add("Exception", ex.Message); Log.Error(new LogObject("CaseActivityManager_PartnerService", logDic)); } }
public async Task <ResponseBase> PublishCaseStatus(PartnerCaseActivityRequest request) { var endpointUrl = $"{ConfigManager.Instance.GetWebConfigBaseURI<PartnerWebApiClientSection>("partnerWebApiClient").BaseUrl?.Value}publishCaseStatus"; var requestJson = JsonConvert.SerializeObject(request); var logDic = new Dictionary <string, object> { { "RequestBody", requestJson }, }; try { var handler = new HttpClientHandler { PreAuthenticate = true, ClientCertificateOptions = ClientCertificateOption.Automatic }; _apiClient.Client = new HttpClient(handler); foreach (var header in ConfigManager.Instance.GetPartnerApiHeader()) { _apiClient.Client.DefaultRequestHeaders.Add(header.Name, header.Value); } _apiClient.Client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); _apiClient.Client.DefaultRequestHeaders.Add( "User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"); logDic.Add("DefaultRequestHeaders", _apiClient.Client.DefaultRequestHeaders.ToString()); var response = await _apiClient.PutAsync <ResponseBase, PartnerCaseActivityRequest>( new Uri(endpointUrl), request, LogOptionEnum.FullLog, logDic); HandleResponse(logDic, response); return(response); } catch (Exception ex) { Log.Info(new LogObject("PublishCaseStatus_PartnerService", logDic)); throw new ExternalErrorException( "Error when calling PublishCaseStatus route from PartnerService", new LogObject("PartnerService_PublishCaseStatus", logDic), ex); } }