Esempio n. 1
0
        protected override void Inspect(XmlPackage xmlPackage)
        {
            if (null == xmlPackage)
            {
                throw new ArgumentNullException(nameof(xmlPackage));
            }

            int errorNumber = xmlPackage.SelectInt32("retval");

            if (0 != errorNumber)
            {
                throw new ClientInspectorException(xmlPackage.SelectString("retid"), errorNumber,
                                                   xmlPackage.SelectString("retdesc"));
            }
        }
        protected override void Inspect(XmlPackage xmlPackage)
        {
            if (null == xmlPackage)
            {
                throw new ArgumentNullException(nameof(xmlPackage));
            }

            int errorNumber = xmlPackage.SelectInt32("retval");

            if (0 != errorNumber)
            {
                throw new OriginalMerchantPaymentException(errorNumber, xmlPackage.SelectString("retdesc"));
            }
        }
        protected virtual void Inspect(XmlPackage xmlPackage)
        {
            if (null == xmlPackage)
            {
                throw new ArgumentNullException(nameof(xmlPackage));
            }

            int errorNumber = xmlPackage.SelectInt32("retval");

            if (0 != errorNumber)
            {
                throw new WmException(errorNumber, xmlPackage.SelectString("retdesc"));
            }
        }
        protected override void Inspect(XmlPackage xmlPackage)
        {
            if (null == xmlPackage)
            {
                throw new ArgumentNullException(nameof(xmlPackage));
            }

            // Проверка ответа
            int errorNumber = xmlPackage.SelectInt32("@retval");

            if (0 != errorNumber)
            {
                throw new WmException(errorNumber, xmlPackage.SelectString("@retdesc"));
            }
        }
        protected override void Inspect(XmlPackage xmlPackage)
        {
            if (null == xmlPackage)
            {
                throw new ArgumentNullException(nameof(xmlPackage));
            }

            var wmXmlPackage = (WmXmlPackage)xmlPackage;

            int errorNumber = wmXmlPackage.SelectInt32("retval");

            if (0 != errorNumber)
            {
                MerchantOperationObtainerException.ErrorExtendedInfo errorExtendedInfo = null;

                if (wmXmlPackage.Exists("errorlog/err_code"))
                {
                    string extendedErrorNumberValue = wmXmlPackage.SelectString("errorlog/err_code");

                    if (!string.IsNullOrEmpty(extendedErrorNumberValue))
                    {
                        // TODO [L] Расшифровать errorlog/siteid
                        // TODO [L] Расшифровать errorlog/att
                        errorExtendedInfo = new MerchantOperationObtainerException.ErrorExtendedInfo
                        {
                            ExtendedErrorNumber = int.Parse(extendedErrorNumberValue,
                                                            CultureInfo.InvariantCulture.NumberFormat),
                            StorePurse            = wmXmlPackage.SelectPurse("errorlog/@lmi_payee_purse"),
                            OrderId               = wmXmlPackage.SelectInt32("errorlog/@lmi_payment_no"),
                            PaymentInfoCreateTime = wmXmlPackage.SelectWmDateTime("errorlog/datecrt"),
                            PaymentInfoUpdateTime = wmXmlPackage.SelectWmDateTime("errorlog/dateupd"),
                            EnterTime             = wmXmlPackage.SelectWmDateTimeIfExists("errorlog/date_s"),
                            AuthorizationTime     = wmXmlPackage.SelectWmDateTimeIfExists("errorlog/date_pc"),
                            ConfirmationTime      = wmXmlPackage.SelectWmDateTimeIfExists("errorlog/date_pd"),
                            SiteId        = wmXmlPackage.SelectInt32("errorlog/siteid"),
                            PaymentMethod = wmXmlPackage.SelectString("errorlog/att")
                        };
                    }
                }

                throw new MerchantOperationObtainerException(errorNumber, xmlPackage.SelectString("retdesc"))
                      {
                          ExtendedInfo = errorExtendedInfo
                      };
            }
        }