예제 #1
0
 public CTM_Message SendMsg(ICtmProcess sendMsg)
 {
     return(sendMsg.SendMsg(GetSession()));
 }
예제 #2
0
        private static void Main(string[] args)
        {
            {
                Console.WriteLine("Start");

                var dbAccess =
                    new CTMDBContext(
                        "data source=lds-devel4;initial catalog=tdmse_sei_5;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework");


                var trades = dbAccess.MyMessage
                             .Include("TradeDetail.SubmitHeader")
                             .Include("TradeDetail.TradeDetailBody")
                             .Include("TradeDetail.TradeDetailBody.TradeLevelReferences")
                             .Include("TradeDetail.TradeDetailBody.TradeLevelInformation")
                             .Include("TradeDetail.TradeDetailBody.TradeLevelInformation.Yield")
                             .Include("TradeDetail.TradeDetailBody.TradeLevelInformation.TotalTradeAmount")
                             .Include("TradeDetail.TradeDetailBody.TradeLevelInformation.TimeZone")
                             .Include("TradeDetail.TradeDetailBody.TradeLevelInformation.StipulationsStandard")
                             .Include("TradeDetail.TradeDetailBody.TradeLevelInformation.StipulationsNonStandard")
                             .Include("TradeDetail.TradeDetailBody.TradeLevelInformation.QuantityOfTheBlockTrade")
                             .Include("TradeDetail.TradeDetailBody.TradeLevelInformation.DealPrice")
                             .Include("TradeDetail.TradeDetailBody.TradeLevelInformation.AdditionalMunicipalDebtData")
                             .Include("TradeDetail.TradeDetailBody.TradeDetailReferences")
                             .Include("TradeDetail.TradeDetailBody.TradeDetailData")
                             .Include("TradeDetail.TradeDetailBody.TradeDetailData.TradeAmount")
                             .Include("TradeDetail.TradeDetailBody.TradeDetailData.QuantityAllocated")
                             .Include("TradeDetail.TradeDetailBody.TradeDetailData.NetCashAmount")
                             .Include("TradeDetail.TradeDetailBody.TradeDetailData.CommFeesTaxes")
                             .Include("TradeDetail.TradeDetailBody.TradeDetailData.CommFeesTaxes.Commissions")
                             .Include("TradeDetail.TradeDetailBody.TradeDetailData.CommFeesTaxes.Commissions.Commission")
                             .Include("TradeDetail.TradeDetailBody.InstructingParty")
                             .Include("TradeDetail.TradeDetailBody.IdentificationOfASecurity")
                             .Include("TradeDetail.TradeDetailBody.IdentificationOfASecurity.SecurityCodeType")
                             .Include("TradeDetail.TradeDetailBody.IPSettlement")
                             .Include("TradeDetail.TradeDetailBody.ExecutingBroker")
                             .Include("TradeDetail.SubmitHeader.RecipientOfMessage")
                             .Include("TradeDetail.SubmitHeader.OriginatorOfMessage")
                             .Include("Cancel.SubmitHeader")
                             .Include("Cancel.CancelBody")
                             .Include("Cancel.CancelBody.InstructingParty")
                             .Include("Cancel.CancelBody.ExecutingBroker")
                             .Include("Cancel.CancelBody.ClearingBroker")
                             .Include("Cancel.CancelBody.TradeLevelIdentifiers")
                             .Include("Cancel.CancelBody.TradeDetailIdentifiers")
                             .Include("Cancel.SubmitHeader.RecipientOfMessage")
                             .Include("Cancel.SubmitHeader.OriginatorOfMessage")
                             .Include("Valid")
                             .Include("Valid.ValidBody")
                             .Where(t => t.Invalid == null).OrderBy(t => t.CtmId).ToList();

                var         msgList   = new List <CTM_Message>();
                var         conection = new ConnectionManager("https", "ctmct.omgeo.net", "443", "/home/WS/DCILogin", "cmacl33", "speed$deeps323", "", "", "", "", 30, 10, true);
                ICtmProcess msg       = null;

                foreach (var message in trades.Where(message => message.TradeDetail != null && message.Valid == null && message.Invalid == null))
                {
                    msg = new SendTradeDetail(message);
                    message.TradeDetail.SubmitHeader.DateTimeOfSentMsg     = DateTime.Now;
                    message.TradeDetail.SubmitHeader.DateTimeOfSentMessage = ulong.Parse(DateTime.Now.ToString("yyyyMMddHHmmss"));

                    var tempMessage = msg?.SendMsg(conection.GetSession());
                    message.Invalid = tempMessage?.Invalid;
                    message.Valid   = tempMessage?.Valid;
                }
                foreach (var message in trades.Where(message => message.Cancel != null && message.Valid == null && message.Invalid == null))
                {
                    msg = new SendTradeCancel(message);
                    message.Cancel.SubmitHeader.DateTimeOfSentMsg     = DateTime.Now;
                    message.Cancel.SubmitHeader.DateTimeOfSentMessage = ulong.Parse(DateTime.Now.ToString("yyyyMMddHHmmss"));

                    var tempMessage = msg?.SendMsg(conection.GetSession());
                    message.Invalid = tempMessage?.Invalid;
                    message.Valid   = tempMessage?.Valid;
                }
                var intSavex = dbAccess.SaveChanges();
                var newL     = msgList;



                Console.WriteLine("End");
            }
        }