コード例 #1
0
        protected override void PastePaymentInfo(PaymentRequest request)
        {
            HTMLDocument doc  = request.Document;
            PaymentInfo  info = request.PaymentInfo;

            if (info.IsDefinedTransfer == false)
            {
                if (IsAnyTransferSelected(doc) == false)
                {
                    GoToTransferPage(request);
                    return;
                }
                Util.SetElementValue(doc.getElementsByName(ACCOUNT_FIELD), info.BankAccountNo);
                if (info.BillerName.Length > 32)
                {
                    Util.SetElementValue(doc.getElementsByName(NAME_FIELD), ReplaceSpecialChars(info.BillerName).Substring(0, 32));
                }
                else
                {
                    Util.SetElementValue(doc.getElementsByName(NAME_FIELD), ReplaceSpecialChars(info.BillerName));
                }
                Util.SetElementValue(doc.getElementsByName(STREET_FIELD), ReplaceSpecialChars(info.Street));
                Util.SetElementValue(doc.getElementsByName(CITY_FIELD), ReplaceSpecialChars(info.City));
                Util.SetElementValue(doc.getElementsByName(POSTAL_CODE_FIELD), info.PostalCode);
            }
            else
            {
                Object tmp    = null;
                int    result = Util.SetElementValue(doc.getElementsByName(DEFINED_TRANSFER_FIELD), info.DefinedTransferName, doc.CreateEventObject(ref tmp));
                if (result == -1)
                {
                    String question = String.Format(Resources.BzWbkNoDefinedTransfer, info.DefinedTransferName);
                    if (Util.ShowYesNoQuestion(null, question) == true)
                    {
                        info.DefinedTransferName = "";
                        PastePaymentInfo(request);
                    }
                    else
                    {
                        info.State = State.INVALID;
                    }
                    return;
                }
                else if (result > 1)
                {
                    Util.ShowInfoMessage(String.Format(Resources.BzWbkMoreThanOneDefinedTransfer, info.DefinedTransferName));
                }
            }
            // we have to wait 300ms and paste data asynchronously because some
            // ugly JavaScript clears all the fields on the bank's page
            new Thread(new ThreadStart(new PasteHelper(request, this).Run)).Start();

            info.State = State.IN_PROGRESS;
        }