Exemplo n.º 1
0
        public byte[] AddDocType(string name, CTM_Message message)
        {
            var strMsg          = Seralizer.SerializeObject <CTM_Message>(message)?.Replace("<CTM_Message>", "<!DOCTYPE CTM_Message PUBLIC \"-//TFN//DTD " + name + " 1.3//EN\" \"" + name + ".dtd\"><CTM_Message>").Replace("\r\n", "");
            var iso8859Encoding = System.Text.Encoding.GetEncoding("ISO-8859-1");

            return(iso8859Encoding?.GetBytes(strMsg));
        }
Exemplo n.º 2
0
        public CTM_Message SendMultiTradeDetailRequest(string protocolVersion, string sendersMessageReference, DateTime?dateTimeOfSentMessage, string orgPartyRole, string orgPartyType, string orgPartyValue,
                                                       string receiptPartyRole, string receiptPartyType, string receiptPartyValue,
                                                       string multiTradeDetailResponseRequested, string byOrAgainstFlag, DateTime?minLastUpdateDateTime, string[] matchStatus)
        {
            var msg                = new CTM_Message();
            var newReuqestMsg      = new CTM_MultiTradeDetailRequest();
            var newSubmitHeaderMsg = new CTM_Header
            {
                ProtocolVersion         = protocolVersion,         //"CM01",
                SendersMessageReference = sendersMessageReference, // "ars455",
                DateTimeOfSentMessage   = 20150202112233           //dateTimeOfSentMessage // 20150202112233 // (DateTime) DateTime.Now.Ticks
            };
            var originatorOfMeessage = new CTM_OriginatorOfMessage
            {
                PartyRole  = orgPartyRole, //"MEOR",
                PartyType  = orgPartyType, //"BIC",
                PartyValue = orgPartyValue // "LIGHTSPD"
            };

            var receiptOfMessage = new CTM_RecipientOfMessage
            {
                PartyRole  = receiptPartyRole, //"MERE",
                PartyType  = receiptPartyType, //"TFID",
                PartyValue = receiptPartyValue //"CTMSERVICE"
            };

            newSubmitHeaderMsg.OriginatorOfMessage = originatorOfMeessage;
            newSubmitHeaderMsg.RecipientOfMessage  = receiptOfMessage;

            var newRequestBodyMsg = new CTM_MultiTradeDetailRequestBody
            {
                MultiTradeDetailResponseRequested = multiTradeDetailResponseRequested, //"ADDD",
                ByOrAgainstFlag       = byOrAgainstFlag,                               //"A",
                MinLastUpdateDateTime = minLastUpdateDateTime                          //20150202112233 //(DateTime) DateTime.Now.AddDays(-10).Ticks
            };

            var newStatusQuery =
                new CTM_MultiTradeDetailRequestBodyMultiTradeDetailStatusQuery
            {
                TDMatchStatusValues = matchStatus
            };

            // var newMatch  = new string[3];
            // newMatch[0] = "NMAT";
            //newMatch[1] = "CAND";

            // newRequestBodyMsg.MultiTradeDetailStatusQuery = newStatusQuery;
            newReuqestMsg.SubmitHeader = newSubmitHeaderMsg;
            newReuqestMsg.MultiTradeDetailRequestBody = newRequestBodyMsg;
            msg.MultiTradeDetailRequest = newReuqestMsg;

            //var newWebSession = new CTM.CtmMessages("https", "ctmct.omgeo.net", "443", "/home/WS/DCILogin", "cmacl33", "speed$deeps323","","","","",30,10,true);
            //newWebSession.OpenWebSession();

            // var strMsg = Seralizer.SerializeObject<CTM_Message>(msg).Replace("<CTM_Message>", "<!DOCTYPE CTM_Message PUBLIC \"-//TFN//DTD MultiTradeDetailRequest 1.3//EN\" \"MultiTradeDetailRequest.dtd\"><CTM_Message>").Replace("\r\n","");

            return(msg);
        }
Exemplo n.º 3
0
        public CTM_Message ReturnCtmMessage(byte[] response, string name)
        {
            if (response == null)
            {
                return(null);
            }
            var newMessage     = new CTM_Message();
            var enc            = System.Text.Encoding.ASCII;
            var responseString = "";

            responseString = enc?.GetString(response);
            try
            {
                if (responseString.Contains("Invalid.dtd"))
                {
                    var invalidMsg = Regex.Split(responseString, "Invalid.dtd'>");

                    if (1 < invalidMsg.Length)
                    {
                        responseString = invalidMsg[1].Replace("\r", "").Replace("\n", "");
                    }
                    else
                    {
                        invalidMsg     = Regex.Split(responseString, "Invalid.dtd\">");
                        responseString = invalidMsg[1].Replace("\r", "").Replace("\n", "");
                    }
                }
                else
                {
                    var values = Regex.Split(responseString, ".dtd'>");
                    if (1 < values.Length)
                    {
                        responseString = values[1].Replace("\r", "").Replace("\n", "").Replace(@",", " ").Replace(@"-", " ").Replace(@"+", " ");
                    }
                    else
                    {
                        values         = Regex.Split(responseString, ".dtd\">");
                        responseString = values[1].Replace("\r", "").Replace("\n", "").Replace(@",", " ").Replace(@"-", " ").Replace(@"+", " ");
                    }
                }
            }
            catch (Exception ex)
            {
                //Log an Error
                var msg = ex.Message;
            }
            try
            {
                return(Seralizer.Deserialize <CTM_Message>(responseString));
            }
            catch (Exception ex)
            {
                var msg = ex.Message;
                // newMessage.Invalid.Text[0] = "Serialization failed for : " + responseString;
            }
            return(null);
        }
Exemplo n.º 4
0
        public CTM_Message GenerateMultiTradeLevelRequest()
        {
            var msg           = new CTM_Message();
            var newReuqestMsg = new CTM_MultiTradeLevelRequest();

            var newSubmitHeaderMsg = new CTM_Header
            {
                ProtocolVersion         = _protocolVersion,         //"CM01",
                SendersMessageReference = _sendersMessageReference, // "ars455",
                DateTimeOfSentMessage   = 20150202112233            // _dateTimeOfSentMessage // 20150202112233 // (DateTime) DateTime.Now.Ticks
            };
            var originatorOfMeessage = new CTM_OriginatorOfMessage
            {
                PartyRole  = _orgPartyRole, //"MEOR",
                PartyType  = _orgPartyType, //"BIC",
                PartyValue = _orgPartyValue // "LIGHTSPD"
            };

            var recipientOfMessage = new CTM_RecipientOfMessage
            {
                PartyRole  = _receiptPartyRole, //"MEOR",
                PartyType  = _receiptPartyType, //"BIC",
                PartyValue = _receiptPartyValue // "LIGHTSPD"
            };

            newSubmitHeaderMsg.OriginatorOfMessage = originatorOfMeessage;
            newSubmitHeaderMsg.RecipientOfMessage  = recipientOfMessage;

            var newRequestBodyMsg = new CTM_MultiTradeLevelRequestBody
            {
                MultiTradeLevelResponseIndicator = _multiTradeLevelResponseIndicator, //"ADDD",
                ByOrAgainstFlag       = _byOrAgainstFlag,                             //"A",
                MinLastUpdateDateTime = _minLastUpdateDateTime                        //20150202112233 //(DateTime) DateTime.Now.AddDays(-10).Ticks
            };


            newReuqestMsg.SubmitHeader = newSubmitHeaderMsg;
            newReuqestMsg.MultiTradeLevelRequestBody = newRequestBodyMsg;
            msg.MultiTradeLevelRequest = newReuqestMsg;

            return(msg);
        }
Exemplo n.º 5
0
 public SendTradeCancel(CTM_Message message)
 {
     _message = message;
 }
Exemplo n.º 6
0
        private static CTM_Message GetTradeDetail
            ()
        {
            var tdMessage = new CTM_Message
            {
                LastUpdated = DateTime.Now,
                TradeDetail = new CTM_TradeDetail
                {
                    SubmitHeader = new CTM_Header
                    {
                        ProtocolVersion     = "CM01",
                        OriginatorOfMessage = new CTM_OriginatorOfMessage
                        {
                            PartyRole  = "MEOR",
                            PartyType  = "BIC",
                            PartyValue = "LIGHTSPD"
                        },
                        RecipientOfMessage = new CTM_RecipientOfMessage
                        {
                            PartyRole  = "MERE",
                            PartyType  = "TFID",
                            PartyValue = "CTMSERVICE"
                        },
                        SendersMessageReference = "VitasRef4417",
                        DateTimeOfSentMessage   = 20151022143030
                    },
                    TradeDetailBody = new CTM_TradeDetailBody
                    {
                        FunctionOfTheMessage    = "NEWM",
                        VersionOfTradeComponent = 001,
                        InstructingParty        = new CTM_TradeDetailBodyInstructingParty
                        {
                            PartyRole  = "INST",
                            PartyType  = "BIC",
                            PartyValue = "LIGHTSPD"
                        },
                        ExecutingBroker = new CTM_TradeDetailBodyExecutingBroker
                        {
                            PartyRole  = "EXEC",
                            PartyType  = "OG",
                            PartyValue = "CTMTST01"
                        },
                        TradeLevelReferences = new CTM_TradeDetailBodyTradeLevelReferences
                        {
                            MasterReference = "20150917224155"     //Trade_Block
                        },
                        TradeDetailReferences = new CTM_TradeDetailBodyTradeDetailReferences
                        {
                            ClientAllocationReference = "Vitas0714144828"    // TradeRefNo
                        },
                        TradeLevelExpected        = "N",
                        IdentificationOfASecurity = new CTM_TradeDetailBodyIdentificationOfASecurity
                        {
                            SecurityCodeType = new CTM_TradeDetailBodyIdentificationOfASecuritySecurityCodeType
                            {
                                NumberingAgencyCode = "SEDO"
                            },
                            SecurityCode             = "TWELLS",
                            DescriptionOfTheSecurity = "TWELLS"
                        },
                        TradeLevelInformation = new CTM_TradeDetailBodyTradeLevelInformation
                        {
                            TypeOfTransactionIndicator = "TRAD",
                            BuySellIndicator           = "BUYI",
                            TypeOfFinancialInstrument  = "COMM",
                            DealPrice = new CTM_TradeDetailBodyTradeLevelInformationDealPrice
                            {
                                CurrencyCode = "GBP",
                                Amount       = "12,"
                            },
                            QuantityOfTheBlockTrade =
                                new CTM_TradeDetailBodyTradeLevelInformationQuantityOfTheBlockTrade
                            {
                                QuantityTypeCode = "UNIT",
                                Amount           = "100,"
                            },
                            TotalTradeAmount = new CTM_TradeDetailBodyTradeLevelInformationTotalTradeAmount
                            {
                                CurrencyCode = "GBP",
                                Amount       = "1200,"
                            },
                            // TradeDateTime = 20151021144825,
                            TimeZone = new CTM_TradeDetailBodyTradeLevelInformationTimeZone
                            {
                                TradeTimeQualifier = "LOCL"
                            },
                            SettlementDate = 20151021,     //DateTime.Now,
                            TradeDateTime  = 20151021111111,
                            // SettlementDate = 20151021,
                            //    StipulationsNonStandard =
                            //        new CTM_TradeDetailBodyTradeLevelInformationStipulationsNonStandard(),
                            //    StipulationsStandard =
                            //        new CTM_TradeDetailBodyTradeLevelInformationStipulationsStandard(),
                            //    AdditionalMunicipalDebtData =
                            //        new CTM_TradeDetailBodyTradeLevelInformationAdditionalMunicipalDebtData(),
                            //    Yield = new CTM_TradeDetailBodyTradeLevelInformationYield()
                        },

                        TradeDetailData = new CTM_TradeDetailBodyTradeDetailData
                        {
                            TradeAmount = new CTM_TradeDetailBodyTradeDetailDataTradeAmount
                            {
                                CurrencyCode = "GBP",
                                Amount       = "1200,"
                            },
                            QuantityAllocated = new CTM_TradeDetailBodyTradeDetailDataQuantityAllocated
                            {
                                QuantityTypeCode = "UNIT",
                                Amount           = "100,"
                            },
                            NetCashAmount = new CTM_TradeDetailBodyTradeDetailDataNetCashAmount
                            {
                                CurrencyCode = "GBP",
                                Amount       = "1200,"
                            },
                            CommFeesTaxes = new CTM_TradeDetailBodyTradeDetailDataCommFeesTaxes
                            {
                                Commissions = new CTM_TradeDetailBodyTradeDetailDataCommFeesTaxesCommissions
                                {
                                    CommissionSharingBasisIndicator = "FLAT",
                                    CommissionType = "TCOM",
                                    Commission     =
                                        new CTM_TradeDetailBodyTradeDetailDataCommFeesTaxesCommissionsCommission
                                    {
                                        Sign         = "+",
                                        CurrencyCode = "GBP",
                                        Amount       = "0,"
                                    }
                                },
                                ChargesOrTaxes = new CTM_TradeDetailBodyTradeDetailDataCommFeesTaxesChargesOrTaxes[]
                                {
                                    new CTM_TradeDetailBodyTradeDetailDataCommFeesTaxesChargesOrTaxes
                                    {
                                        ChargeTaxType = "LOCL",
                                        ChargeAmount  =
                                            new CTM_TradeDetailBodyTradeDetailDataCommFeesTaxesChargesOrTaxesChargeAmount
                                        {
                                            Sign         = "+",
                                            CurrencyCode = "GBP",
                                            Amount       = "0,"
                                        }
                                    },
                                    new CTM_TradeDetailBodyTradeDetailDataCommFeesTaxesChargesOrTaxes
                                    {
                                        ChargeTaxType = "CHAR",
                                        ChargeAmount  =
                                            new CTM_TradeDetailBodyTradeDetailDataCommFeesTaxesChargesOrTaxesChargeAmount
                                        {
                                            Sign         = "+",
                                            CurrencyCode = "GBP",
                                            Amount       = "0,"
                                        }
                                    },
                                    new CTM_TradeDetailBodyTradeDetailDataCommFeesTaxesChargesOrTaxes
                                    {
                                        ChargeTaxType = "OTHR",
                                        ChargeAmount  =
                                            new CTM_TradeDetailBodyTradeDetailDataCommFeesTaxesChargesOrTaxesChargeAmount
                                        {
                                            Sign         = "+",
                                            CurrencyCode = "GBP",
                                            Amount       = "0,"
                                        }
                                    }
                                }
                            }
                        },
                        IPSettlement = new CTM_TradeDetailBodyIPSettlement
                        {
                            AccountID = ""
                        }
                    }
                }
            };

            return(tdMessage);
        }
Exemplo n.º 7
0
 public SendTradeDetail(CTM_Message message)
 {
     _message = message;
 }
Exemplo n.º 8
0
        public CTM_Message GenerateTradeLevelRequest()
        {
            var msg           = new CTM_Message();
            var newReuqestMsg = new CTM_TradeLevel();

            var newSubmitHeaderMsg = new CTM_Header
            {
                ProtocolVersion         = _protocolVersion,         //"CM01",
                SendersMessageReference = _sendersMessageReference, // "ars455",
                DateTimeOfSentMessage   = 20150202112233            //_dateTimeOfSentMessage // 20150202112233 // (DateTime) DateTime.Now.Ticks
            };
            var originatorOfMeessage = new CTM_OriginatorOfMessage
            {
                PartyRole  = _orgPartyRole, //"MEOR",
                PartyType  = _orgPartyType, //"BIC",
                PartyValue = _orgPartyValue // "LIGHTSPD"
            };

            var recipientOfMessage = new CTM_RecipientOfMessage
            {
                PartyRole  = _receiptPartyRole, //"MEOR",
                PartyType  = _receiptPartyType, //"BIC",
                PartyValue = _receiptPartyValue // "LIGHTSPD"
            };

            newSubmitHeaderMsg.OriginatorOfMessage = originatorOfMeessage;
            newSubmitHeaderMsg.RecipientOfMessage  = recipientOfMessage;



            var newExecutingBroker = new CTM_TradeLevelBodyExecutingBroker
            {
                PartyRole  = _executingBrokerPartyRole, //"EXEC",
                PartyType  = _executingBrokerPartyType, //"BIC",
                PartyValue = _executingBrokerPartyValue // "TECHSOLBXXX"
            };
            var newTradeLevelReferences = new CTM_TradeLevelBodyTradeLevelReferences
            {
                MasterReference = _masterReference //"-893838912000000",
            };


            var newIdentificationOfASecuritySecurityCodeType = new CTM_TradeLevelBodyIdentificationOfASecuritySecurityCodeType
            {
                NumberingAgencyCode = _numberingAgencyCode,
                //"SEDO"
            };
            var newSecurityCodeType = new CTM_TradeLevelBodyIdentificationOfASecurity
            {
                SecurityCodeType = newIdentificationOfASecuritySecurityCodeType, //"v",
                SecurityCode     = _securityCode                                 //5668287
            };
            var newDealPrice = new CTM_TradeLevelBodyTradeLevelInformationDealPrice
            {
                CurrencyCode = _currencyCode, //USD
                Amount       = _amount        // Ammount
            };
            var newQuantityOfTheBlockTrade = new CTM_TradeLevelBodyTradeLevelInformationQuantityOfTheBlockTrade
            {
                QuantityTypeCode = _quantityTypeCode, //USD
                Amount           = _qTypeCodeAmount   // Ammount
            };
            var newTotalTradeAmount = new CTM_TradeLevelBodyTradeLevelInformationTotalTradeAmount
            {
                CurrencyCode = _currencyCodeTotalTradeAmount,  //USD
                Amount       = _currencyAmountTotalTradeAmount // Ammount
            };
            var newTimeZone = new CTM_TradeLevelBodyTradeLevelInformationTimeZone
            {
                TradeTimeQualifier = _timeZoneTradeTimeQualifier //LOCL
            };

            var newTradeLevelInformation = new CTM_TradeLevelBodyTradeLevelInformation
            {
                TypeOfTransactionIndicator = _typeOfTransactionIndicator, //  TRAD
                BuySellIndicator           = _buySellIndicator,           // BUYI
                TypeOfFinancialInstrument  = _typeOfFinancialInstrument,  // COMM
                TradeDateTime           = _tradeDateTime,                 // 20150504094438
                SettlementDate          = _settlementDate,                //> 20150505
                DealPrice               = newDealPrice,
                QuantityOfTheBlockTrade = newQuantityOfTheBlockTrade,
                TotalTradeAmount        = newTotalTradeAmount,
                TimeZone = newTimeZone
            };

            var newInstructingParty = new CTM_TradeLevelBodyInstructingParty
            {
                PartyRole  = _instructingPartyRole, //"INST",
                PartyType  = _instructingPartyType, //"BIC",
                PartyValue = _instructingPartyValue // "LIGHTSPD"
            };



            var newRequestBodyMsg = new CTM_TradeLevelBody
            {
                FunctionOfTheMessage      = _functionOfTheMessage,    //"NEWM"
                VersionOfTradeComponent   = _versionOfTradeComponent, //"001",
                IdentificationOfASecurity = newSecurityCodeType,
                InstructingParty          = newInstructingParty,
                ExecutingBroker           = newExecutingBroker,
                TradeLevelReferences      = newTradeLevelReferences,
                TradeLevelInformation     = newTradeLevelInformation
            };

            newReuqestMsg.SubmitHeader   = newSubmitHeaderMsg;
            newReuqestMsg.TradeLevelBody = newRequestBodyMsg;
            msg.TradeLevel = newReuqestMsg;

            return(msg);
        }
Exemplo n.º 9
0
        public CTM_Message GenerateInfoRequest()
        {
            var msg           = new CTM_Message();
            var newReuqestMsg = new CTM_InfoRequest();

            var newSubmitHeaderMsg = new CTM_Header
            {
                ProtocolVersion         = _protocolVersion,         //"CM01",
                SendersMessageReference = _sendersMessageReference, // "ars455",
                DateTimeOfSentMessage   = 20150202112233            //_dateTimeOfSentMessage // 20150202112233 // (DateTime) DateTime.Now.Ticks
            };
            var originatorOfMeessage = new CTM_OriginatorOfMessage
            {
                PartyRole  = _orgPartyRole, //"MEOR",
                PartyType  = _orgPartyType, //"BIC",
                PartyValue = _orgPartyValue // "LIGHTSPD"
            };

            var recipientOfMessage = new CTM_RecipientOfMessage
            {
                PartyRole  = _receiptPartyRole, //"MEOR",
                PartyType  = _receiptPartyType, //"BIC",
                PartyValue = _receiptPartyValue // "LIGHTSPD"
            };

            newSubmitHeaderMsg.OriginatorOfMessage = originatorOfMeessage;
            newSubmitHeaderMsg.RecipientOfMessage  = recipientOfMessage;

            var newRequestBodyMsg = new CTM_InfoRequestBody
            {
                ViewRequestedIndicator = _viewRequestedIndicator,
                QueryType = _queryType
            };
            var newExecutingBroker = new CTM_InfoRequestBodyExecutingBroker
            {
                PartyRole  = _executingBrokerPartyRole,
                PartyType  = _executingBrokerPartyType,
                PartyValue = _executingBrokerPartyValue
            };
            var newMasterReference = new CTM_InfoRequestBodyAccessPathTradeLevelIdentifiers
            {
                MasterReference = _accessPathTradeLevelIdentifiersMasterReference
            };
            var newAccessPath = new CTM_InfoRequestBodyAccessPath
            {
                IDOwner = _accessPathIdOwner,
                TradeLevelIdentifiers = newMasterReference
            };

            //if (!string.IsNullOrEmpty(_cTMTradeDetailID))
            //{
            //    var new
            //}
            //     _accessPathIdOwner
            //  _accessPathTradeLevelIdentifiersMasterReference


            newReuqestMsg.SubmitHeader    = newSubmitHeaderMsg;
            newReuqestMsg.InfoRequestBody = newRequestBodyMsg;
            newReuqestMsg.InfoRequestBody.ExecutingBroker = newExecutingBroker;
            newReuqestMsg.InfoRequestBody.AccessPath      = newAccessPath;
            msg.InfoRequest = newReuqestMsg;

            return(msg);
        }