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