Beispiel #1
0
        private void CreateXML()
        {
            int index = 0; //DataTable row index
            int tableNumberRows = ds.Tables[0].Rows.Count; //counts number of rows in DataTable

            CreditTransferTransactionInformation10[] crdtTransTransacInfoTransactions = new CreditTransferTransactionInformation10[tableNumberRows];

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                CreditTransferTransactionInformation10 crdtTransTransacInfo = new CreditTransferTransactionInformation10();

                PaymentIdentification1 paymentIndNum = new PaymentIdentification1();
                paymentIndNum.EndToEndId = index.ToString();

                EquivalentAmount2 eqvAmount = new EquivalentAmount2();
                ActiveOrHistoricCurrencyAndAmount curAndAmnt = new ActiveOrHistoricCurrencyAndAmount();
                curAndAmnt.Ccy = row[10].ToString();//Currency
                curAndAmnt.Value = decimal.Parse(row[9].ToString());//Transaction ammount

                eqvAmount.Amt = curAndAmnt;

                AmountType3Choice amntType = new AmountType3Choice();
                amntType.Item = eqvAmount;

                crdtTransTransacInfo.PmtId = paymentIndNum;
                crdtTransTransacInfo.Amt = amntType;

                crdtTransTransacInfoTransactions[index] = crdtTransTransacInfo;

                index++;
            }

            PaymentInstructionInformation3[] pmntInstrInf = new PaymentInstructionInformation3[1];
            PaymentInstructionInformation3 pmntInstrInfIteam = new PaymentInstructionInformation3();
            pmntInstrInfIteam.CdtTrfTxInf = crdtTransTransacInfoTransactions;
            pmntInstrInf[0] = pmntInstrInfIteam;

            Authorisation1Choice[] authChoiceArray = new Authorisation1Choice[1];
            Authorisation1Choice authChoice = new Authorisation1Choice();
            authChoice.Item = "Sergei";
            authChoiceArray[0] = authChoice;

            GroupHeader32 grpHdr = new GroupHeader32();
            grpHdr.Authstn = authChoiceArray;

            CustomerCreditTransferInitiationV03 cctiv = new CustomerCreditTransferInitiationV03();
            cctiv.GrpHdr = grpHdr;
            cctiv.PmtInf = pmntInstrInf;

            Document document = new Document();

            document.CstmrCdtTrfInitn = cctiv;

            var data = document;
            var serializer = new XmlSerializer(typeof(Document));
            using (var stream = new StreamWriter("C:\\Users\\yulya\\Desktop\\test.xml"))

               serializer.Serialize(stream, data);
        }
 public DirectDebitTransactionInformation9(
     PaymentIdentification1 paymentIdentification,
     PaymentTypeInformation20 paymentTypeInformation,
     ActiveOrHistoricCurrencyAndAmount instructedAmount,
     ChargeBearerType1Code chargeBearer,
     bool chargeBearerSpecified,
     DirectDebitTransaction6 directDebitTransaction,
     PartyIdentification32 ultimateCreditor,
     BranchAndFinancialInstitutionIdentification4 debtorAgent,
     CashAccount16 debtorAgentAccount,
     PartyIdentification32 debtor,
     CashAccount16 debtorAccount,
     PartyIdentification32 ultimateDebtor,
     string instructionForCreditorAgent,
     Purpose2Choice purpose,
     RegulatoryReporting3[] regulatoryReporting,
     TaxInformation3 tax,
     RemittanceLocation2[] relatedRemittanceInformation,
     RemittanceInformation5 remittanceInformation)
 {
     this.pmtIdField = paymentIdentification;
     this.pmtTpInfField = paymentTypeInformation;
     this.instdAmtField = instructedAmount;
     this.chrgBrField = chargeBearer;
     this.chrgBrFieldSpecified = chargeBearerSpecified;
     this.drctDbtTxField=directDebitTransaction;
     this.ultmtCdtrField=ultimateCreditor;
     this.dbtrAgtField=debtorAgent;
     this.dbtrAgtAcctField=debtorAgentAccount;
     this.dbtrField = debtor;
     this.dbtrAcctField = debtorAccount;
     this.ultmtDbtrField = ultimateDebtor;
     this.instrForCdtrAgtField = instructionForCreditorAgent;
     this.purpField = purpose;
     this.rgltryRptgField = (RegulatoryReporting3[])regulatoryReporting.Clone();
     this.taxField = tax;
     this.rltdRmtInfField=(RemittanceLocation2[])relatedRemittanceInformation.Clone();
     this.rmtInfField = remittanceInformation;
 }
Beispiel #3
0
        private void CreateXML()
        {
            int index           = 0;                       //DataTable row index
            int tableNumberRows = ds.Tables[0].Rows.Count; //counts number of rows in DataTable

            CreditTransferTransactionInformation10[] crdtTransTransacInfoTransactions = new CreditTransferTransactionInformation10[tableNumberRows];

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                CreditTransferTransactionInformation10 crdtTransTransacInfo = new CreditTransferTransactionInformation10();

                PaymentIdentification1 paymentIndNum = new PaymentIdentification1();
                paymentIndNum.EndToEndId = index.ToString();

                EquivalentAmount2 eqvAmount = new EquivalentAmount2();
                ActiveOrHistoricCurrencyAndAmount curAndAmnt = new ActiveOrHistoricCurrencyAndAmount();
                curAndAmnt.Ccy   = row[10].ToString();               //Currency
                curAndAmnt.Value = decimal.Parse(row[9].ToString()); //Transaction ammount

                eqvAmount.Amt = curAndAmnt;

                AmountType3Choice amntType = new AmountType3Choice();
                amntType.Item = eqvAmount;

                crdtTransTransacInfo.PmtId = paymentIndNum;
                crdtTransTransacInfo.Amt   = amntType;

                crdtTransTransacInfoTransactions[index] = crdtTransTransacInfo;

                index++;
            }

            PaymentInstructionInformation3[] pmntInstrInf      = new PaymentInstructionInformation3[1];
            PaymentInstructionInformation3   pmntInstrInfIteam = new PaymentInstructionInformation3();

            pmntInstrInfIteam.CdtTrfTxInf = crdtTransTransacInfoTransactions;
            pmntInstrInf[0] = pmntInstrInfIteam;

            Authorisation1Choice[] authChoiceArray = new Authorisation1Choice[1];
            Authorisation1Choice   authChoice      = new Authorisation1Choice();

            authChoice.Item    = "Sergei";
            authChoiceArray[0] = authChoice;

            GroupHeader32 grpHdr = new GroupHeader32();

            grpHdr.Authstn = authChoiceArray;

            CustomerCreditTransferInitiationV03 cctiv = new CustomerCreditTransferInitiationV03();

            cctiv.GrpHdr = grpHdr;
            cctiv.PmtInf = pmntInstrInf;

            Document document = new Document();

            document.CstmrCdtTrfInitn = cctiv;

            var data       = document;
            var serializer = new XmlSerializer(typeof(Document));

            using (var stream = new StreamWriter("C:\\Users\\yulya\\Desktop\\test.xml"))

                serializer.Serialize(stream, data);
        }
        /// <summary>
        /// Adds a new transaction to the document
        /// </summary>
        /// <param name="receiver">Object with all the required information about the receiver of the new transaction</param>
        /// <param name="transaction">Object with all the required information about the transaction itself</param>
        public void AddTransaction(Receiver receiver, Transaction transaction)
        {
            CreditTransferTransactionInformation10CH cdtTrfTxInf = new CreditTransferTransactionInformation10CH(); // Index 2.27

            PaymentIdentification1 pmtId = new PaymentIdentification1();                                           // Index 2.28

            cdtTrfTxInf.PmtId = pmtId;
            pmtId.InstrId     = "1-" + pmtInf1.CdtTrfTxInf.Length;                  // Index 2.29
            pmtId.EndToEndId  = transaction.ReferenceIdentification;                // Index 2.30

            PaymentTypeInformation19CH pmtTpInf = new PaymentTypeInformation19CH(); // Index 2.31

            cdtTrfTxInf.PmtTpInf = pmtTpInf;

            AmountType3Choice amt = new AmountType3Choice(); // Index 2.42

            cdtTrfTxInf.Amt = amt;

            ActiveOrHistoricCurrencyAndAmount currencyAndAmount = new ActiveOrHistoricCurrencyAndAmount(); // Index 2.43

            amt.Item = currencyAndAmount;
            currencyAndAmount.Ccy   = transaction.CurrencyCode;
            currencyAndAmount.Value = transaction.Amount;

            BranchAndFinancialInstitutionIdentification4CH cdtrAgt = new BranchAndFinancialInstitutionIdentification4CH(); // Index 2.77

            cdtTrfTxInf.CdtrAgt = cdtrAgt;

            FinancialInstitutionIdentification7CH finInstnIdCdtr = new FinancialInstitutionIdentification7CH(); // Index 2.77 / Financial Institution Identification

            cdtrAgt.FinInstnId = finInstnIdCdtr;

            PartyIdentification32CH_Name cdtr = new PartyIdentification32CH_Name(); // Index 2.79

            cdtTrfTxInf.Cdtr = cdtr;

            cdtr.Nm = receiver.Name;                           // Index 2.79 / Name
            PostalAddress6CH pstlAdr = new PostalAddress6CH(); // Index 2.79 / Postal Address

            cdtr.PstlAdr = pstlAdr;


            pstlAdr.StrtNm = receiver.StreetName; // Index 2.79 / Street Name

            if (!string.IsNullOrWhiteSpace(receiver.StreetNumber))
            {
                pstlAdr.StrtNm = receiver.StreetName + " " + receiver.StreetNumber; // Index 2.79 / Building Number
            }

            pstlAdr.PstCd = receiver.Zip;                           // Index 2.79 / Post Code
            pstlAdr.TwnNm = receiver.City;                          // Index 2.79 / Town Name
            pstlAdr.Ctry  = receiver.CountryCode;                   // Index 2.79 / Country

            CashAccount16CH_Id cdtrAcct = new CashAccount16CH_Id(); // Index 2.80

            cdtTrfTxInf.CdtrAcct = cdtrAcct;

            cdtrAcct.Id      = new AccountIdentification4ChoiceCH(); // Index 2.80 / Identification
            cdtrAcct.Id.Item = transaction.ReceiverIban;             // Index 2.80 / Id / IBAN  Ziel-Konto

            AddNewCreditTransferTransactionInformation(pmtInf1.CdtTrfTxInf, cdtTrfTxInf);
            UpdateLevelA();
        }
Beispiel #5
0
        /// <summary>
        /// Adds a new transaction to the document
        /// </summary>
        /// <param name="receiver">Object with all the required information about the receiver of the new transaction</param>
        /// <param name="transaction">Object with all the required information about the transaction itself</param>
        public void AddTransaction(PaymentInstructionInformation3CH pmtInf, Receiver receiver, TransactionBase transaction)
        {
            CreditTransferTransactionInformation10CH cdtTrfTxInf = new CreditTransferTransactionInformation10CH(); // Index 2.27

            PaymentIdentification1 pmtId = new PaymentIdentification1();                                           // Index 2.28

            cdtTrfTxInf.PmtId = pmtId;
            pmtId.InstrId     = "1-" + pmtInf.CdtTrfTxInf.Length;    // Index 2.29
            pmtId.EndToEndId  = transaction.ReferenceIdentification; // Index 2.30

            AmountType3Choice amt = new AmountType3Choice();         // Index 2.42

            cdtTrfTxInf.Amt = amt;

            ActiveOrHistoricCurrencyAndAmount currencyAndAmount = new ActiveOrHistoricCurrencyAndAmount(); // Index 2.43

            amt.Item = currencyAndAmount;
            currencyAndAmount.Ccy   = transaction.CurrencyCode;
            currencyAndAmount.Value = transaction.Amount;

            PartyIdentification32CH_Name cdtr = new PartyIdentification32CH_Name(); // Index 2.79

            cdtTrfTxInf.Cdtr = cdtr;

            cdtr.Nm = receiver.Name;                           // Index 2.79 / Name
            PostalAddress6CH pstlAdr = new PostalAddress6CH(); // Index 2.79 / Postal Address

            cdtr.PstlAdr = pstlAdr;


            pstlAdr.StrtNm = receiver.StreetName; // Index 2.79 / Street Name

            if (!string.IsNullOrWhiteSpace(receiver.StreetNumber))
            {
                pstlAdr.StrtNm = receiver.StreetName + " " + receiver.StreetNumber; // Index 2.79 / Building Number
            }

            pstlAdr.PstCd = receiver.Zip;                                // Index 2.79 / Post Code
            pstlAdr.TwnNm = receiver.City;                               // Index 2.79 / Town Name
            pstlAdr.Ctry  = receiver.CountryCode;                        // Index 2.79 / Country

            CashAccount16CH_Id cdtrAcct = new CashAccount16CH_Id();      // Index 2.80

            cdtrAcct.Id          = new AccountIdentification4ChoiceCH(); // Index 2.80 / Identification
            cdtTrfTxInf.CdtrAcct = cdtrAcct;

            if (transaction.GetType() == typeof(TransactionIBANandQRR))
            {
                TransactionIBANandQRR transactionIbaNandQrr = ((TransactionIBANandQRR)transaction);

                cdtrAcct.Id.Item = transactionIbaNandQrr.ReceiverIban; // Index 2.80 / Id / IBAN  Ziel-Konto

                if (!string.IsNullOrWhiteSpace(transactionIbaNandQrr.ReceiverBIC))
                {
                    BranchAndFinancialInstitutionIdentification4CH cdtrAgt = new BranchAndFinancialInstitutionIdentification4CH(); // Index 2.77
                    cdtTrfTxInf.CdtrAgt = cdtrAgt;

                    FinancialInstitutionIdentification7CH finInstnIdCdtr = new FinancialInstitutionIdentification7CH(); // Index 2.77 / Financial Institution Identification
                    cdtrAgt.FinInstnId = finInstnIdCdtr;
                    finInstnIdCdtr.BIC = transactionIbaNandQrr.ReceiverBIC;                                             // Index 2.21
                }

                // QRR
                if (!string.IsNullOrWhiteSpace(transactionIbaNandQrr.QRReferenceNumber))
                {
                    var rmtInf = new RemittanceInformation5CH(); // Index 2.126
                    cdtTrfTxInf.RmtInf = rmtInf;
                    rmtInf.Strd        = new StructuredRemittanceInformation7
                    {
                        CdtrRefInf = new CreditorReferenceInformation2
                        {
                            Ref = transactionIbaNandQrr.QRReferenceNumber,
                            Tp  = new CreditorReferenceType2
                            {
                                CdOrPrtry = new CreditorReferenceType1Choice
                                {
                                    Item = "QRR"
                                }
                            }
                        }
                    };
                }
            }
            else if (transaction.GetType() == typeof(TransactionESR))
            {
                TransactionESR transactionESR = ((TransactionESR)transaction);

                PaymentTypeInformation19CH pmtTpInf = new PaymentTypeInformation19CH(); // Index 2.31
                cdtTrfTxInf.PmtTpInf = pmtTpInf;
                cdtTrfTxInf.PmtTpInf = new PaymentTypeInformation19CH                   // Index 2.31
                {
                    LclInstrm = new LocalInstrument2Choice                              // Index 2.36
                    {
                        ItemElementName = ItemChoiceType5.Prtry,                        // Index 2.38
                        Item            = transactionESR.PaymentType
                    }
                };

                cdtrAcct.Id.Item = new GenericAccountIdentification1CH() // Index 2.80
                {
                    Id = transactionESR.ReceiverAccount
                };

                var rmtInf = new RemittanceInformation5CH(); // Index 2.98
                cdtTrfTxInf.RmtInf = rmtInf;
                rmtInf.Strd        = new StructuredRemittanceInformation7
                {
                    CdtrRefInf = new CreditorReferenceInformation2
                    {
                        Ref = transactionESR.ESRReferenceNumber
                    }
                };
            }
            else if (transaction.GetType() == typeof(TransactionES))
            {
                TransactionES transactionES = ((TransactionES)transaction);

                PaymentTypeInformation19CH pmtTpInf = new PaymentTypeInformation19CH(); // Index 2.31
                cdtTrfTxInf.PmtTpInf = pmtTpInf;
                cdtTrfTxInf.PmtTpInf = new PaymentTypeInformation19CH                   // Index 2.31
                {
                    LclInstrm = new LocalInstrument2Choice                              // Index 2.36
                    {
                        ItemElementName = ItemChoiceType5.Prtry,                        // Index 2.38
                        Item            = transactionES.PaymentType
                    }
                };

                cdtrAcct.Id.Item = new GenericAccountIdentification1CH() // Index 2.80
                {
                    Id = transactionES.ReceiverAccount
                };
            }

            AddNewCreditTransferTransactionInformation(pmtInf, cdtTrfTxInf);
        }