private HttpStatusCode send(MsgIDs item, SenderConfigs senderConfig, int retryCount = 50) { try { var url = buildUrl(senderConfig); var request = createWebRequest(url); var postXml = getPayload(item.MsgId); using (var stream = request.GetRequestStream()) { postXml.Save(stream); } HttpWebResponse resp = request.GetResponse() as HttpWebResponse; return(resp.StatusCode); } catch (Exception ex) { if (retryCount == 0) { throw ex; } else { retryCount--; ATTPayLoadsLog.Write(_data.GetLog($"Fail to Upload Message:{item.MsgId},Retry left {retryCount} times,Error:{ex.Message}", LogType.Fail)); } Task.Delay(3000).Wait(); return(send(item, senderConfig, retryCount)); } }
private string buildUrl(SenderConfigs config) { string urlTemp = WebUtility.UrlEncode(config.sendernamespace + "^" + config.senderinterface); string url = $"http://{_data.Host}:{_data.Port}/sap/xi/engine?type=entry&version=3.0&Sender.Service={config.itgsendercomponent}&Interface={urlTemp}&QualityOfService=ExactlyOnce"; return(url); }