public static void ConnectCallback(IAsyncResult ar) { try { // Retrieve the socket from the state object. Socket sockTradeFeed = (Socket)ar.AsyncState; // Complete the connection. sockTradeFeed.EndConnect(ar); GetInstance.ReplyText = "Connected Successfully"; setIP = true; //SaveTradeFeedIPPORT(); // TwsMainWindowVM.parser.SaveSettings(TwsMainWindowVM.TwsINIPath.ToString()); MemoryManager.onlineSendFeed = true; // Signal that the connection has been made. connectDone.Set(); AsynchronousTradeFeed.SendTradeToTradeFeed(); } catch (Exception e) { GetInstance.ReplyText = "Connection Failed"; MemoryManager.onlineSendFeed = false; connectDone.Set(); Console.WriteLine(e.ToString()); } finally { //SaveTradeFeedIPPORT(); } }
private static void OpenSocketConnection() { //Controller.NetPositionCalculate.ProcessOnlineTrades(); AsynchronousTradeFeed.checkIP(); AsynchronousTradeFeed.StartTradeFeed(); if (AsynchronousTradeFeed.setIP) { SaveTradeFeedIPPORT(); } /* if (AsynchronousTradeFeed.sockTradeFeed.Connected == true) * { * AsynchronousTradeFeed.SendTradeToTradeFeed(); * }*/ }
public static void SendTradeToTradeFeedFinal(TradeUMS oTradeUMS) { try { List <byte> tradeFeedONReq = new List <byte>(); int msgLength = 182; int NoOfTrades = 1; int Filler1 = 0; char[] StrData; byte[] buffer; string time = oTradeUMS.TimeOnly; string orderTimeStamp = String.Empty; var timearray = time.Split(':'); if (timearray != null && timearray.Count() > 0) { int hour = Convert.ToInt16(timearray[0]); int min = Convert.ToInt16(timearray[1]); int sec = Convert.ToInt16(timearray[2]); char char_space = '\0'; if (((hour) > (txtHour) && ((min) >= (txtMinute) || (min) < (txtMinute)) && ((sec) >= (txtSeconds) || (sec) < (txtSeconds))) || ((hour) == (txtHour) && ((min) == (txtMinute)) && ((sec) >= (txtSeconds))) || ((hour) == (txtHour) && ((min) > (txtMinute)) && (((sec) >= (txtSeconds)) || ((sec) < (txtSeconds))))) { tradeFeedONReq.AddRange(BitConverter.GetBytes(msgLength)); tradeFeedONReq.AddRange(BitConverter.GetBytes(NoOfTrades)); tradeFeedONReq.AddRange(BitConverter.GetBytes(oTradeUMS.TraderId)); tradeFeedONReq.AddRange(BitConverter.GetBytes(Convert.ToInt32(oTradeUMS.ScripCode))); StrData = oTradeUMS.ScripName.PadRight(11, ' ').ToCharArray(); foreach (char c in StrData) { buffer = BitConverter.GetBytes(c); tradeFeedONReq.Add(buffer[0]); } tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); tradeFeedONReq.AddRange(BitConverter.GetBytes(oTradeUMS.SideTradeID)); tradeFeedONReq.AddRange(BitConverter.GetBytes(Convert.ToInt32(oTradeUMS.LastPx / 1000000))); tradeFeedONReq.AddRange(BitConverter.GetBytes(oTradeUMS.LastQty)); tradeFeedONReq.AddRange(BitConverter.GetBytes(Filler1)); tradeFeedONReq.AddRange(BitConverter.GetBytes(Filler1)); //tradeFeedONReq.AddRange(BitConverter.GetBytes(CommonFunctions.GetGroupName(oTradeUMS.ScripCode))); // add 1 more byte // Array.Resize(ref StrData, 9); // StrData = new string(StrData).PadLeft(StrData.Length, '\t').ToCharArray(); StrData = oTradeUMS.TimeOnly.PadRight(8, ' ').ToCharArray(); foreach (char c in StrData) { buffer = BitConverter.GetBytes(c); tradeFeedONReq.Add(buffer[0]); } tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); StrData = oTradeUMS.DateOnly.PadRight(10, ' ').ToCharArray(); foreach (char c in StrData) { buffer = BitConverter.GetBytes(c); tradeFeedONReq.Add(buffer[0]); } tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); StrData = orderTimeStamp.PadRight(19, ' ').ToCharArray(); foreach (char c in StrData) { buffer = BitConverter.GetBytes(c); tradeFeedONReq.Add(buffer[0]); } tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); StrData = oTradeUMS.Client.PadRight(11, ' ').ToCharArray(); foreach (char c in StrData) { buffer = BitConverter.GetBytes(c); tradeFeedONReq.Add(buffer[0]); } tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); StrData = oTradeUMS.BSFlag.PadRight(0, ' ').ToCharArray(); foreach (char c in StrData) { buffer = BitConverter.GetBytes(c); tradeFeedONReq.Add(buffer[0]); } StrData = oTradeUMS.OrderType.PadRight(0, ' ').ToCharArray(); foreach (char c in StrData) { buffer = BitConverter.GetBytes(c); tradeFeedONReq.Add(buffer[0]); } tradeFeedONReq.AddRange(BitConverter.GetBytes(oTradeUMS.OrderID)); StrData = oTradeUMS.ClientType.PadRight(9, ' ').ToCharArray(); foreach (char c in StrData) { buffer = BitConverter.GetBytes(c); tradeFeedONReq.Add(buffer[0]); } tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); StrData = oTradeUMS.ISIN.PadRight(12, ' ').ToCharArray(); foreach (char c in StrData) { buffer = BitConverter.GetBytes(c); tradeFeedONReq.Add(buffer[0]); } tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); // tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); //StrData = string.Join("/", oTradeUMS.SettlNo).ToCharArray(); //Array.Resize(ref StrData, 12); //foreach (char c in StrData) //{ // buffer = BitConverter.GetBytes(c); // tradeFeedONReq.Add(buffer[0]); //} //Filler1 = Convert.ToInt32(oTradeUMS.SettlNo[0]); if (!string.IsNullOrEmpty(oTradeUMS.SettlNo[0])) { tradeFeedONReq.AddRange(BitConverter.GetBytes(Convert.ToInt32(oTradeUMS.SettlNo[0]))); } else { tradeFeedONReq.AddRange(BitConverter.GetBytes(Filler1)); } //tradeFeedONReq.AddRange(BitConverter.GetBytes(Convert.ToInt32(oTradeUMS.SettlNo[0]))); /* byte[] tmpbyte; * tmpbyte = BitConverter.GetBytes(Filler1); * tradeFeedONReq.AddRange(tmpbyte);*/ /* StrData = oTradeUMS.ScripGroup.PadRight(2, ' ').ToCharArray(); * foreach (char c in StrData) * { * buffer = BitConverter.GetBytes(c); * tradeFeedONReq.Add(buffer[0]); * }*/ tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); StrData = oTradeUMS.ScripGroup.PadRight(2, ' ').ToCharArray(); foreach (char c in StrData) { buffer = BitConverter.GetBytes(c); tradeFeedONReq.Add(buffer[0]); } tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); if (!string.IsNullOrEmpty(oTradeUMS.SettlNo[1])) { tradeFeedONReq.AddRange(BitConverter.GetBytes(Convert.ToInt32(oTradeUMS.SettlNo[1]))); } else { tradeFeedONReq.AddRange(BitConverter.GetBytes(Filler1)); } tradeFeedONReq.AddRange(BitConverter.GetBytes(oTradeUMS.SenderLocationID)); if (oTradeUMS.CPCode == null) { oTradeUMS.CPCode = string.Empty; } StrData = oTradeUMS.CPCode?.PadRight(12, ' ').ToCharArray(); foreach (char c in StrData) { buffer = BitConverter.GetBytes(c); tradeFeedONReq.Add(buffer[0]); } tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); tradeFeedONReq.Add(BitConverter.GetBytes(char_space)[0]); tradeFeedONReq.AddRange(BitConverter.GetBytes(Filler1)); tradeFeedONReq.AddRange(BitConverter.GetBytes(oTradeUMS.UnderlyingDirtyPrice)); tradeFeedONReq.AddRange(BitConverter.GetBytes(oTradeUMS.DecimalLocator)); AsynchronousTradeFeed.Send(sockTradeFeed, tradeFeedONReq.ToArray <byte>()); MemoryManager.NoOfTradeFeedSent = MemoryManager.NoOfTradeFeedSent + 1; GetInstance.ReplyText = "No of Trades Sent : " + MemoryManager.NoOfTradeFeedSent; } } } catch (Exception ex) { ExceptionUtility.LogError(ex); } }