/// <summary> /// Query responder to check if we are connected to the terminal and whether the user is logged in /// </summary> /// <param name="queryMessage"></param> private static void BBG_connection_status(FinsembleQueryArgs queryMessage) { if (queryMessage.error != null) { //failed to register the query responder properly FSBL.Logger.Error("Error received by BBG_connection_status query responder: ", queryMessage.error); } else { JObject connectionStatus = new JObject(); connectionStatus.Add("registered", isRegistered); connectionStatus.Add("loggedIn", isLoggedIn); queryMessage.sendQueryMessage(new FinsembleEventResponse(connectionStatus, null)); Console.WriteLine("Responded to BBG_connection_status query: " + connectionStatus.ToString()); FSBL.Logger.Log("Responded to BBG_connection_status query: ", connectionStatus); } }
/// <summary> /// Query handler function that runs a specified terminal connect command and responds. /// </summary> /// <param name="queryMessage"></param> private static void BBG_run_terminal_function(FinsembleQueryArgs queryMessage) { if (queryMessage.error != null) { //failed to register the query responder properly FSBL.Logger.Error("Error received by BBG_run_terminal_function query responder: ", queryMessage.error); } else { JObject queryResponse = new JObject(); JToken queryData = null; if (isRegistered && isLoggedIn) { queryData = queryMessage.response?["data"]; if (queryData != null) { FSBL.Logger.Debug("Received query: ", queryData); BBG_execute_terminal_function(queryResponse, queryData); } else { queryResponse.Add("status", false); queryResponse.Add("message", "Invalid request: no query data"); } } else if (!isRegistered) { queryResponse.Add("status", false); queryResponse.Add("message", "Not registered with the Bloomberg BlpApi"); } else if (!isLoggedIn) { queryResponse.Add("status", false); queryResponse.Add("message", "Not Logged into Bloomberg terminal"); } //return the response queryMessage.sendQueryMessage(new FinsembleEventResponse(queryResponse, null)); Console.WriteLine("Responded to BBG_run_terminal_function query: " + queryResponse.ToString()); FSBL.Logger.Debug("Responded to BBG_run_terminal_function query: ", queryData, "Response: ", queryResponse); } }