public void SendStatus(IntegrationStatus status, IntegrationRequisition requisition) { var requestInfo = new RequestInfo { chainId = requisition.ChainId, Sender = CommonConstants.SystemInfoSenderNiis, messageId = Guid.NewGuid().ToString(), messageDate = DateTime.Now }; var logAction = new LogAction { DbDateTime = DateTimeOffset.Now, Project = CommonConstants.StatusSender, Type = ProjectType, Note = $"RequestBarcode = {status.RequestBarcode} StatusId = {status.OnlineRequisitionStatusId}", SystemInfoQueryId = _logging.CreateLogSystemInfo(Mapper.Map <LogSystemInfo>(requestInfo)) }; _logging.CreateLogAction(logAction); var responseInfo = new RequestInfo { status = new StatusInfo() }; string url = null; try { var dopUsluga = requisition.Callback != null && requisition.Callback.Contains(MessageSend); var response = SendStatusToPep(status, requisition.ProtectionDocTypeId, requestInfo, dopUsluga, out url); var xml = new XmlDocument(); xml.LoadXml(response); var responseNode = xml.GetElementsByTagName("response")[0]; responseInfo.status.Code = responseNode.ChildNodes[1].ChildNodes[0].InnerText; responseInfo.status.Message = responseNode.ChildNodes[1].ChildNodes[1].InnerText; } catch (WebException ex) { responseInfo.status.Code = "-99"; responseInfo.status.Message = ex.Message + " // " + GetResponseText(ex.Response); } catch (Exception ex) { responseInfo.status.Code = "-88"; responseInfo.status.Message = ex.ToString(); } logAction.SystemInfoAnswerId = _logging.CreateLogSystemInfo(Mapper.Map <LogSystemInfo>(requestInfo)); _logging.UpdateLogAction(logAction); if (!int.TryParse(responseInfo.status.Code, out var code) || code != 3) { var text = $"code = {responseInfo.status.Code} ; PEP => URL: {url} => {responseInfo.status.Message}"; throw new Exception(text); } }
public void SendStatus(IntegrationStatus integrationStatus, IntegrationRequisition requisition) { var client = GetClientKazPatent(_configuration.KazPatentWebServiceUrl); var argument = new StatusSendArgument { SystemInfo = new SystemInfo { ChainId = requisition.ChainId, MessageDate = DateTime.Now, MessageId = Guid.NewGuid().ToString(), Sender = CommonConstants.SystemInfoSenderNiis }, Status = new Status { RowID = integrationStatus.Id, DocumentID = integrationStatus.RequestBarcode, StatusID = integrationStatus.OnlineRequisitionStatusId, Note = integrationStatus.Note } }; var logAction = new LogAction { DbDateTime = DateTimeOffset.Now, Project = CommonConstants.StatusSender, Type = ProjectTypeStatusSend, Note = $"RequestBarcode = {integrationStatus.RequestBarcode} StatusId = {integrationStatus.OnlineRequisitionStatusId}", SystemInfoQueryId = _logging.CreateLogSystemInfo(Mapper.Map <LogSystemInfo>(argument.SystemInfo)) }; _logging.CreateLogAction(logAction); var result = client.StatusSend(argument); logAction.SystemInfoAnswerId = _logging.CreateLogSystemInfo(Mapper.Map <LogSystemInfo>(result.SystemInfo)); _logging.UpdateLogAction(logAction); if (result.SystemInfo == null) { throw new Exception(); } if (int.Parse(result.SystemInfo.Status.Code) < 0) { var text = $"KazPatent => URL: {requisition.StatusURL} => {result.SystemInfo.Status.MessageKz}"; throw new Exception(text); } }