private static string resolveWorksheetId(JToken queryData, JObject queryResponse) { string worksheetId = null; if (queryData["id"] == null) { var worksheetName = queryData.Value <string>("name"); var allWorksheets = BlpTerminal.GetAllWorksheets(); foreach (BlpWorksheet sheet in allWorksheets) { if (sheet.Name.Equals(worksheetName)) { worksheetId = sheet.Id; break; } } if (worksheetId == null) { queryResponse.Add("status", false); queryResponse.Add("message", "Worksheet '" + worksheetName + "' not found"); } } else { worksheetId = queryData.Value <string>("id"); } return(worksheetId); }
private static void AppendToWorksheet(JObject queryResponse, JToken queryData) { if (validateQueryData("AppendToWorksheet", queryData, new string[] { "securities" }, new string[] { "name", "id" }, queryResponse)) { List <string> securities = new List <string>(); foreach (string a in queryData["securities"]) { securities.Add(a); } string worksheetId = resolveWorksheetId(queryData, queryResponse); if (worksheetId != null) { BlpWorksheet worksheet = BlpTerminal.GetWorksheet(worksheetId); if (worksheet != null) { worksheet.AppendSecurities(securities); queryResponse.Add("status", true); queryResponse.Add("worksheet", renderWorksheet(worksheet, true)); } else { queryResponse.Add("status", false); queryResponse.Add("message", "Worksheet with id '" + worksheetId + "' not found"); } } } }
private static void RunFunction(JObject queryResponse, JToken queryData) { if (validateQueryData("RunFunction", queryData, new string[] { "mnemonic", "panel" }, null, queryResponse)) { string BBG_mnemonic = queryData.Value <string>("mnemonic"); string panel = queryData.Value <string>("panel"); string tails = null; List <string> securitiesList = new List <string>(); if (queryData["tails"] != null) { tails = queryData.Value <string>("tails"); } if (queryData["securities"] != null) { foreach (string a in queryData["securities"]) { securitiesList.Add(a); } } if (securitiesList.Count > 0) { BlpTerminal.RunFunction(BBG_mnemonic, panel, securitiesList, tails); queryResponse.Add("status", true); } else { BlpTerminal.RunFunction(BBG_mnemonic, panel, tails); queryResponse.Add("status", true); } } }
private static void GetGroupContext(JObject queryResponse, JToken queryData) { if (validateQueryData("GetGroupContext", queryData, new string[] { "name" }, null, queryResponse)) { BlpGroup group = BlpTerminal.GetGroupContext(queryData["name"].ToString()); queryResponse.Add("status", true); queryResponse.Add("group", renderGroup(group)); } }
private static void GetAllGroups(JObject queryResponse) { var allGroups = BlpTerminal.GetAllGroups(); JArray groups = new JArray(); foreach (BlpGroup group in allGroups) { groups.Add(renderGroup(group)); } queryResponse.Add("status", true); queryResponse.Add("groups", groups); }
private static void GetAllWorksheets(JObject queryResponse) { var allWorksheets = BlpTerminal.GetAllWorksheets(); JArray worksheets = new JArray(); foreach (BlpWorksheet sheet in allWorksheets) { worksheets.Add(renderWorksheet(sheet, false)); } queryResponse.Add("status", true); queryResponse.Add("worksheets", worksheets); }
/// <summary> /// Function that attempts to connect to the bloomberg terminal and then monitor the connection /// until told to shutdown. Cycles once per second. /// </summary> private static void connectionMonitorThread() { while (!shutdown) { bool _isRegistered = false; bool _isLoggedIn = false; try { _isRegistered = BlpApi.IsRegistered; } catch (Exception err) { FSBL.Logger.Error("Bloomberg API registration check failed"); } if (!_isRegistered) { try { //try to register BlpApi.Register(); BlpApi.Disconnected += new System.EventHandler(BlpApi_Disconnected); _isRegistered = BlpApi.IsRegistered; } catch (Exception err) { _isRegistered = false; FSBL.Logger.Warn("Bloomberg API registration failed"); } } if (_isRegistered) { try { _isLoggedIn = BlpTerminal.IsLoggedIn(); } catch (Exception err) { _isLoggedIn = false; FSBL.Logger.Warn("Bloomberg API isLoggedIn call failed"); } } else { //can't be logged in if not connected to the BlpApi _isLoggedIn = false; } _isLoggedIn = checkForConnectionStatusChange(_isRegistered, _isLoggedIn); Thread.Sleep(1000); } }
private static void CreateWorksheet(JObject queryResponse, JToken queryData) { if (validateQueryData("CreateWorksheet", queryData, new string[] { "securities", "name" }, null, queryResponse)) { var _securities = new List <string>(); foreach (string a in queryData["securities"]) { _securities.Add(a); } BlpWorksheet worksheet = BlpTerminal.CreateWorksheet(queryData["name"].ToString(), _securities); queryResponse.Add("status", true); queryResponse.Add("worksheet", renderWorksheet(worksheet, true)); } }
private static void DoSetGroupContext(JObject queryResponse, JToken queryData) { //save time of last set to allow debouncing� � lastQueryTime = DateTimeOffset.UtcNow; if (queryData["cookie"] != null && queryData["cookie"].ToString() != "") { BlpTerminal.SetGroupContext(queryData["name"].ToString(), queryData["value"].ToString(), queryData["cookie"].ToString()); } else { BlpTerminal.SetGroupContext(queryData["name"].ToString(), queryData["value"].ToString()); } queryResponse.Add("status", true); }
private static void GetWorksheet(JObject queryResponse, JToken queryData) { if (validateQueryData("GetWorksheet", queryData, null, new string[] { "name", "id" }, queryResponse)) { string worksheetId = resolveWorksheetId(queryData, queryResponse); if (worksheetId != null) { BlpWorksheet worksheet = BlpTerminal.GetWorksheet(worksheetId); if (worksheet != null) { queryResponse.Add("status", true); queryResponse.Add("worksheet", renderWorksheet(worksheet, true)); } else { queryResponse.Add("status", false); queryResponse.Add("message", "Worksheet with id '" + worksheetId + "' not found"); } } } }