コード例 #1
0
ファイル: Form1.cs プロジェクト: redtchits/XMLFormatter
        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);
        }
コード例 #2
0
        private decimal GetCredit(AmountType3Choice transactionInfoAmt)
        {
            switch (transactionInfoAmt.Item)
            {
            case ActiveOrHistoricCurrencyAndAmount instdAmt:
                return(instdAmt.Value);

            default: throw new NotSupportedException("Not supported currency/amount info");
            }
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: chaika57/XMLFormatter
        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);
        }
コード例 #4
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(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();
        }
コード例 #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);
        }