private void ProcessHistoricalDataResponse(Bloomberglp.Blpapi.Message argvMessage) { Bloomberglp.Blpapi.Element tElementMsg = argvMessage.AsElement; string[] tTargetAttributes = mHistoricalDataResponseDefaultAttributes; if (mHistoricalDataRequestByCorrelationId.ContainsKey(argvMessage.CorrelationID.Value)) { tTargetAttributes = mHistoricalDataRequestByCorrelationId[argvMessage.CorrelationID.Value].GetFieldList(); } else { InterfaceEventArgs tArgs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.Error); tArgs.mMsg = "Unknown historical data response. Correlation ID: " + argvMessage.CorrelationID.Value + ". Will use default attributes to parse the message."; mBbgMsgEvent(this, tArgs); } string[] tFullAttributes = new string[tTargetAttributes.Length + 2]; tFullAttributes[0] = "security"; tFullAttributes[1] = "date"; Array.Copy(tTargetAttributes, 0, tFullAttributes, 2, tTargetAttributes.Length); System.Data.DataTable tExtractedValues = this.ExtractValueByName(tElementMsg, tFullAttributes); mOutput.PrintDataTable(tExtractedValues); InterfaceEventArgs tEventArgvs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.HistoricalDataResponse); tEventArgvs.mData = tExtractedValues; mBbgMsgEvent(this, tEventArgvs); }
private void ProcessAdminMessage(Bloomberglp.Blpapi.Event argvEvent) { InterfaceEventArgs tArgs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.Error); // Loop over all of the messages in this Event foreach (Bloomberglp.Blpapi.Message msg in argvEvent) { tArgs.mMsg += msg.ToString(); } mBbgMsgEvent(this, tArgs); }
private void ProcessReferenceDataResponse(Bloomberglp.Blpapi.Message argvMessage) { Bloomberglp.Blpapi.Element tElementMsg = argvMessage.AsElement; string[] tTargetAttributes = mOtherRequestByCorrelationId[argvMessage.CorrelationID.Value].GetFieldList(); System.Data.DataTable tExtractedValues = this.ExtractValueByName(tElementMsg, tTargetAttributes); System.Data.DataColumn tNewColumn = new System.Data.DataColumn("SECURITY"); tNewColumn.DefaultValue = mOtherRequestByCorrelationId[argvMessage.CorrelationID.Value].mTicker; tExtractedValues.Columns.Add(tNewColumn); tNewColumn.SetOrdinal(0); InterfaceEventArgs tRetData = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.ReferenceDataResponse); tRetData.mData = tExtractedValues; mBbgMsgEvent(this, tRetData); }
private void ProcessRequestResponse(Bloomberglp.Blpapi.Event argvEvent) { // Loop over all of the messages in this Event foreach (Bloomberglp.Blpapi.Message tMsg in argvEvent) { Bloomberglp.Blpapi.Element tElementMsg = tMsg.AsElement; System.Data.DataTable tResponseErrorTable = this.ExtractValueByName(tElementMsg, mRequestResponseErrorAttributes); if (tResponseErrorTable.Rows.Count > 0) { string tErrorMsg = "Message Type: " + tMsg.MessageType.ToString() + Environment.NewLine; for (int i = 0; i < tResponseErrorTable.Rows.Count; i++) { tErrorMsg += "Error Message: " + tResponseErrorTable.Rows[i]["MESSAGE"] + ", Category: " + tResponseErrorTable.Rows[i]["SUBCATEGORY"] + Environment.NewLine; } InterfaceEventArgs tEventArgvs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.Error, tErrorMsg); mBbgMsgEvent(this, tEventArgvs); } if (tMsg.MessageType.Equals(new Bloomberglp.Blpapi.Name("HistoricalDataResponse"))) { this.ProcessHistoricalDataResponse(tMsg); } else if (tMsg.MessageType.Equals(new Bloomberglp.Blpapi.Name("IntradayTickResponse"))) { this.ProcessIntradayTickResponse(tMsg); } else if (tMsg.MessageType.Equals(new Bloomberglp.Blpapi.Name("IntradayBarResponse"))) { this.ProcessIntradayBarResponse(tMsg); } else if (tMsg.MessageType.Equals(new Bloomberglp.Blpapi.Name("ReferenceDataResponse"))) { this.ProcessReferenceDataResponse(tMsg); } else { mBbgMsgEvent(this, new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.Print, tMsg.ToString())); } } }
private void ProcessSubscriptionStatus(Bloomberglp.Blpapi.Event argEvent) { foreach (Bloomberglp.Blpapi.Message tMsg in argEvent) { foreach (CorrelationID tId in tMsg.CorrelationIDs) { if (tMsg.MessageType.ToString() == "SubscriptionFailure") { string tTicker = string.Empty; if (mSubscriptionByCorrelationId.ContainsKey(tId.Value)) { tTicker = mSubscriptionByCorrelationId[tId.Value].mTicker; } InterfaceEventArgs tArgs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.Error); tArgs.mMsg = "SubscriptionFailure: Ticker '" + tTicker + "'"; mBbgMsgEvent(this, tArgs); } } } }
private void ProcessSubscriptionData(Bloomberglp.Blpapi.Event argEvent) { foreach (Bloomberglp.Blpapi.Message tMsg in argEvent) { Bloomberglp.Blpapi.Element tElementMsg = tMsg.AsElement; string[] tTargetAttributes = mSubscriptionByCorrelationId[tMsg.CorrelationID.Value].GetFieldList(); System.Data.DataTable tExtractedValues = this.ExtractValueByName(tElementMsg, tTargetAttributes); System.Data.DataColumn tNewColumn = new System.Data.DataColumn("SECURITY"); tNewColumn.DefaultValue = tMsg.TopicName; tExtractedValues.Columns.Add(tNewColumn); tNewColumn.SetOrdinal(0); //mOutput.PrintDataTable(tExtractedValues); if (tExtractedValues.Rows.Count == 1) { mMarketData[tMsg.CorrelationID.Value].UpdateMarketData(tExtractedValues); InterfaceEventArgs tArgs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.SubscriptionResponse); tArgs.mCorrelationId = tMsg.CorrelationID.Value; tArgs.mData = tExtractedValues; mBbgMsgEvent(this, tArgs); } } }
private void ProcessIntradayBarResponse(Bloomberglp.Blpapi.Message argvMessage) { if (mIntradayBarRequestByCorrelationId.ContainsKey(argvMessage.CorrelationID.Value)) { string tTicker = mIntradayBarRequestByCorrelationId[argvMessage.CorrelationID.Value].mTicker; Bloomberglp.Blpapi.Element tElementMsg = argvMessage.AsElement; System.Data.DataTable tExtractedValues = this.ExtractValueByName(tElementMsg, mIntradayBarResponseDefaultAttributes); System.Data.DataColumn tNewColumn = new System.Data.DataColumn("SECURITY"); tNewColumn.DefaultValue = tTicker; tExtractedValues.Columns.Add(tNewColumn); tNewColumn.SetOrdinal(0); mOutput.PrintDataTable(tExtractedValues); InterfaceEventArgs tEventArgvs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.IntradayBarResponse); tEventArgvs.mData = tExtractedValues; mBbgMsgEvent(this, tEventArgvs); } else { InterfaceEventArgs tArgs = new InterfaceEventArgs(InterfaceEventArgs.xBbgMsgType.Error); tArgs.mMsg = "Unknown intraday bar response. Correlation ID: " + argvMessage.CorrelationID.Value + ". Won't parse the message."; mBbgMsgEvent(this, tArgs); } }