Exemplo n.º 1
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);
            }
        }
Exemplo n.º 2
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);
            }
        }
Exemplo n.º 3
0
            public RequisitionSendResult Handle(Command message)
            {
                using (var transaction = _niisContext.Database.BeginTransaction())
                {
                    try
                    {
                        var requestInfo = _requisitionSendService.RequisitionDocumentAdd(message.Argument);
                        if (message.Argument.BlockClassification != null)
                        {
                            _requisitionSendService.RequisitionMktuAdd(message.Argument.BlockClassification,
                                                                       requestInfo.requestId);
                        }

                        if (message.Argument.BlockEarlyReg != null)
                        {
                            _requisitionSendService.RequisitionEarlyRegAdd(message.Argument.BlockEarlyReg,
                                                                           requestInfo.requestId);
                        }

                        if (message.Argument.BlockColor != null)
                        {
                            _requisitionSendService.RequisitionColorAdd(message.Argument.BlockColor,
                                                                        requestInfo.requestId, message.Argument.PatentType.UID);
                        }

                        if (message.Argument.BlockCustomer != null)
                        {
                            _requisitionSendService.RequisitionBlockCustomerAdd(message.Argument.BlockCustomer,
                                                                                requestInfo.requestId);
                        }

                        if (message.Argument.BlockFile != null)
                        {
                            _requisitionSendService.RequisitionBlockFileAdd(message.Argument.BlockFile,
                                                                            requestInfo.requestId, message.Argument.SystemInfo.Sender);
                        }

                        var integrationRequisition = new IntegrationRequisition
                        {
                            ChainId             = message.Argument.SystemInfo.ChainId,
                            ProtectionDocTypeId = message.Argument.PatentType.UID,
                            Sender                    = message.Argument.SystemInfo.Sender,
                            StatusURL                 = _configuration.UrlServiceKazPatent,
                            RequestBarcode            = requestInfo.barcode,
                            RequestNumber             = requestInfo.incomingNum,
                            OnlineRequisitionStatusId = requestInfo.onlineStatusId,
                            Callback                  = "RequisitionSend"
                        };
                        _niisContext.IntegrationRequisitions.Add(integrationRequisition);
                        _niisContext.SaveChanges();
                        transaction.Commit();

                        message.Result.DocumentID        = requestInfo.barcode;
                        message.Result.DocumentNumber    = requestInfo.incomingNum;
                        message.Result.RequisitionStatus = requestInfo.onlineStatusId;
                    }
                    catch (Exception)
                    {
                        EntityFrameworkHelper.DetachAll(_niisContext);
                        transaction.Rollback();
                        throw;
                    }
                }

                return(message.Result);
            }