public bool GetCurrencyRates(DataTable exchangeRates) { int noOfRates; DataRow dr; //var binding = new BasicHttpsBinding("PerSecurityHttpsBinding"); var binding = new BasicHttpBinding("PerSecurityHttpBinding"); //var binding = new WSHttpBinding("PerSecurityWSBinding2"); var endpoint = new EndpointAddress(new Uri(endpointurl)); //var channelFactory = new ChannelFactory<PerSecurityWSChannel>(binding, endpoint); var channelFactory = new ChannelFactory <PerSecurityWS>(binding, endpoint); channelFactory.Credentials. ClientCertificate.Certificate = new X509Certificate2(certificatePath); binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate; channelFactory.Open(); //PerSecurityWSChannel ps = channelFactory.CreateChannel(); PerSecurityWS ps = channelFactory.CreateChannel(); //Setting request header information GetDataHeaders getDataHeaders = new GetDataHeaders { secmaster = true, secmasterSpecified = true, closingvalues = true, closingvaluesSpecified = true }; // Console.WriteLine("test 1 "); noOfRates = exchangeRates.Rows.Count; if (noOfRates < 1) { return(true); } SubmitGetDataRequest sbmtGtDtreq = new SubmitGetDataRequest { headers = getDataHeaders, fields = CurrencyTypeToFetch(), //Old version instruments = new Instrument[noOfRates] // { ticker1}; }; //sbmtGtDtreq.instruments = new Instruments(); //sbmtGtDtreq.instruments.instrument = new Instrument[noOfRates]; for (int i = 0; i < noOfRates; i++) { dr = exchangeRates.Rows[i]; //Old version sbmtGtDtreq.instruments[i] = new Instrument { id = dr.ItemArray[0].ToString(), yellowkey = MarketSector.Curncy, yellowkeySpecified = true }; } // end for try { ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; submitGetDataRequestRequest sbmtGtDtreq0 = new submitGetDataRequestRequest(sbmtGtDtreq); SubmitGetDataResponse sbmtGtDtresp = ps.submitGetDataRequest(sbmtGtDtreq0).submitGetDataResponse; } catch (Exception exx) { Console.WriteLine(exx.Message); return(false); } finally { ((PerSecurityWSChannel)ps).Close(); channelFactory.Close(); } return(true); }
public void run(PerSecurity_Dotnet.PerSecurityWSDL.PerSecurityWS ps) { try { //Setting request header information GetDataHeaders getDataHdrs = new GetDataHeaders(); getDataHdrs.secmasterSpecified = true; getDataHdrs.secmaster = true; //Setting instruments for request Instruments instrs = new Instruments(); instrs.macro = new Macro[2]; instrs.macro[0] = new Macro(); instrs.macro[0].primaryQualifier = new PrimaryQualifier(); instrs.macro[0].primaryQualifier.primaryQualifierType = MacroType.SECTYP; instrs.macro[0].primaryQualifier.primaryQualifierValue = "OPT_CHAIN"; instrs.macro[0].secondaryQualifier = new SecondaryQualifier[1]; instrs.macro[0].secondaryQualifier[0] = new SecondaryQualifier(); instrs.macro[0].secondaryQualifier[0].secondaryQualifierOperator = SecondaryQualifierOperator.Equals; instrs.macro[0].secondaryQualifier[0].secondaryQualifierType = SecondaryQualifierType.SECURITY_DES; instrs.macro[0].secondaryQualifier[0].secondaryQualifierValue = "SPX Index"; instrs.macro[0].overrides = new Override[1]; //A sample of incorrect macro instrs.macro[1] = new Macro(); instrs.macro[1].primaryQualifier = new PrimaryQualifier(); instrs.macro[1].primaryQualifier.primaryQualifierType = MacroType.SECTYP; instrs.macro[1].primaryQualifier.primaryQualifierValue = "OPTCHAIN"; instrs.macro[1].secondaryQualifier = new SecondaryQualifier[1]; instrs.macro[1].secondaryQualifier[0] = new SecondaryQualifier(); instrs.macro[1].secondaryQualifier[0].secondaryQualifierOperator = SecondaryQualifierOperator.Equals; instrs.macro[1].secondaryQualifier[0].secondaryQualifierType = SecondaryQualifierType.SECURITY_DES; instrs.macro[1].secondaryQualifier[0].secondaryQualifierValue = "SPX Index"; //Setting fields for the request string[] field = new string[] { "NAME", "TICKER", "PX_LAST" }; //Submit get data request Console.WriteLine("Sending submit get data request"); SubmitGetDataRequest sbmtGtDtreq = new SubmitGetDataRequest(); sbmtGtDtreq.headers = getDataHdrs; sbmtGtDtreq.fields = field; sbmtGtDtreq.instruments = instrs; SubmitGetDataResponse sbmtGtDtresp = ps.submitGetDataRequest(sbmtGtDtreq); System.Console.WriteLine("status " + sbmtGtDtresp.statusCode.description); System.Console.WriteLine("Submit Get Data request - response ID = " + sbmtGtDtresp.responseId); //retrieve get data request. The response ID sent for the request is the response ID //received from SubmitGetDataRequest() Console.WriteLine("Retrieve data request"); RetrieveGetDataRequest rtrvGtDrReq = new RetrieveGetDataRequest(); rtrvGtDrReq.responseId = sbmtGtDtresp.responseId; RetrieveGetDataResponse rtrvGtDrResp = new RetrieveGetDataResponse(); //Keep sending the request until status code is "0"(success) do { System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL); rtrvGtDrResp = ps.retrieveGetDataResponse(rtrvGtDrReq); } while (rtrvGtDrResp.statusCode.code == PerSecurity.DATA_NOT_AVAILABLE); if (rtrvGtDrResp.statusCode.code == PerSecurity.SUCCESS) { Console.WriteLine("Retrieve get data request successful"); for (int i = 0; i < rtrvGtDrResp.instrumentDatas.Length; i++) { if (rtrvGtDrResp.instrumentDatas[i].code.Equals("0")) { System.Console.WriteLine("Data for :" + rtrvGtDrResp.instrumentDatas[i].instrument.id + " " + rtrvGtDrResp.instrumentDatas[i].instrument.yellowkey); for (int j = 0; j < rtrvGtDrResp.instrumentDatas[i].data.Length; j++) { if (rtrvGtDrResp.instrumentDatas[i].data[j].isArray == true) { //In case this is a bulk field request for (int k = 0; k < rtrvGtDrResp.instrumentDatas[i].data[j]. bulkarray.Length; k++) { Console.WriteLine("-------------------------"); for (int l = 0; l < rtrvGtDrResp.instrumentDatas[i].data[j]. bulkarray[k].data.Length; l++) Console.WriteLine(rtrvGtDrResp.instrumentDatas[i].data[j] .bulkarray[k].data[l].value); } } else System.Console.WriteLine(" " + sbmtGtDtreq.fields[j] + " : " + rtrvGtDrResp.instrumentDatas[i].data[j].value); } } //If an incorrect macro was passed in the request, display the error code and the incorrect macro else { System.Console.WriteLine("\n Error Code " + rtrvGtDrResp.instrumentDatas[i].code + ": incorrect macro. The Macro object is as follows:"); Console.WriteLine("Primary Qualifier -"); Console.WriteLine("Primary Qualifier type:" + rtrvGtDrResp.instrumentDatas[i]. macro.primaryQualifier.primaryQualifierType); Console.WriteLine("Primary Qualifier value:" + rtrvGtDrResp.instrumentDatas[i]. macro.primaryQualifier.primaryQualifierValue); Console.WriteLine("Secondary Qualifier -"); for (int l = 0; l < rtrvGtDrResp.instrumentDatas[i].macro.secondaryQualifier.Length; l++) { Console.WriteLine("Secondary Qualifier type :" + rtrvGtDrResp.instrumentDatas[i]. macro.secondaryQualifier[l].secondaryQualifierType); Console.WriteLine("Secondary Qualifier Value :" + rtrvGtDrResp.instrumentDatas[i]. macro.secondaryQualifier[l].secondaryQualifierValue); Console.WriteLine("Secondary Qualifier Operator :" + rtrvGtDrResp.instrumentDatas[i]. macro.secondaryQualifier[l].secondaryQualifierOperator); } } } } else if (rtrvGtDrResp.statusCode.code == PerSecurity.REQUEST_ERROR) Console.WriteLine("Error in the submitted request"); } catch (Exception e) { Console.WriteLine(e.Message + " " + e.StackTrace); } }
public bool GetCurrencyRates1(DataTable exchangeRates) { DataRow dr; int noOfRates; PerSecurityWSClient ps = new PerSecurityWSClient("PerSecurityHttpPort"); //PerSecurityWSClient ps = new PerSecurityWSClient("PerSecurityHttpsPort"); // PerSecurityWSClient ps = new PerSecurityWSClient("PerSecurityWSPort"); //X509Certificate2 clientCert = new X509Certificate2(certificatePath); X509Certificate2 clientCert = GetBloomBergCertificate(); ps.ClientCredentials.ClientCertificate.Certificate = clientCert; //Setting request header information GetDataHeaders getDataHeaders = new GetDataHeaders { secmaster = true, secmasterSpecified = true, closingvalues = true, closingvaluesSpecified = true }; // Console.WriteLine("test 1 "); noOfRates = exchangeRates.Rows.Count; if (noOfRates < 1) { return(true); } SubmitGetDataRequest sbmtGtDtreq = new SubmitGetDataRequest { headers = getDataHeaders, fields = CurrencyTypeToFetch(), //Old version instruments = new Instrument[noOfRates] // { ticker1}; }; //sbmtGtDtreq.instruments = new Instruments(); //sbmtGtDtreq.instruments.instrument = new Instrument[noOfRates]; for (int i = 0; i < noOfRates; i++) { dr = exchangeRates.Rows[i]; //Old version sbmtGtDtreq.instruments[i] = new Instrument { id = dr.ItemArray[0].ToString(), yellowkey = MarketSector.Curncy, yellowkeySpecified = true }; //sbmtGtDtreq.instruments.instrument[i] = new Instrument(); //sbmtGtDtreq.instruments.instrument[i].id = dr.ItemArray[0].ToString(); //sbmtGtDtreq.instruments.instrument[i].yellowkey = MarketSector.Curncy; //sbmtGtDtreq.instruments.instrument[i].yellowkeySpecified = true; } // end for try { ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; SubmitGetDataResponse sbmtGtDtresp = new SubmitGetDataResponse(); sbmtGtDtresp = ps.submitGetDataRequest(sbmtGtDtreq); } catch (Exception exx) { Console.WriteLine(exx.Message); return(false); } return(true); }
public void run(PerSecurityWS ps) { try { // Setting the instruments for request Instrument bbUniqueId = new Instrument(); bbUniqueId.id = "EQ0086119600001000"; bbUniqueId.yellowkeySpecified = false; bbUniqueId.type = InstrumentType.BB_UNIQUE; bbUniqueId.typeSpecified = true; Instrument ticker = new Instrument(); ticker.id = "IBM US"; ticker.yellowkeySpecified = true; ticker.yellowkey = MarketSector.Equity; ticker.typeSpecified = false; ticker.type = InstrumentType.TICKER; // Setting request header GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.secmaster = true; getDataHeaders.secmasterSpecified = true; getDataHeaders.closingvalues = true; getDataHeaders.closingvaluesSpecified = true; getDataHeaders.programflagSpecified = true; getDataHeaders.programflag = ProgramFlag.daily; getDataHeaders.rundate = DateTime.Today.ToString("yyyyMMdd"); getDataHeaders.time = "0010"; getDataHeaders.derived = true; getDataHeaders.specialchar = SpecialChar.fraction; getDataHeaders.dateformat = DateFormat.ddmmyyyy; getDataHeaders.dateformatSpecified = true; Instruments instrs = new Instruments(); instrs.instrument = new Instrument[] { bbUniqueId, ticker }; // Submit getdata request SubmitGetDataRequest sbmtGtDrReq = new SubmitGetDataRequest(); sbmtGtDrReq.headers = getDataHeaders; sbmtGtDrReq.fields = new string[] { "ID_BB_UNIQUE", "TICKER", "PX_LAST", "PX_ASK", "PX_BID", "VWAP_DT" }; sbmtGtDrReq.instruments = instrs; Console.WriteLine("Submit getdata request"); submitGetDataRequestRequest sbmtGtDrReqReq = new submitGetDataRequestRequest(sbmtGtDrReq); submitGetDataRequestResponse sbmtGetDtReqResp = ps.submitGetDataRequest(sbmtGtDrReqReq); SubmitGetDataResponse sbmtGetDtResp = sbmtGetDtReqResp.submitGetDataResponse; System.Console.WriteLine("Submit getdata response Id = " + sbmtGetDtResp.responseId + "\n"); // Submit scheduled request for the getdata request sent above SubmitScheduledRequest sbmtSchReq = new SubmitScheduledRequest(); Console.WriteLine("Submit scheduled request"); submitScheduledRequestRequest sbmtSchReqReq = new submitScheduledRequestRequest(sbmtSchReq); submitScheduledRequestResponse sbmtSchReqResp = ps.submitScheduledRequest(sbmtSchReqReq); SubmitScheduledResponse sbmtSchResp = sbmtSchReqResp.submitScheduledResponse; Console.WriteLine("Submit Schedule request responseID : " + sbmtSchResp.responseId + "\n"); // Submit retrieve scheduled request to display all the scheduled files and check to see // if the daily job requested was addeds Console.WriteLine("Retrieve scheduled request"); RetrieveScheduledRequest rtrvSchReq = new RetrieveScheduledRequest(); rtrvSchReq.responseId = sbmtSchResp.responseId; retrieveScheduledResponseRequest rtrvSchRespReq = new retrieveScheduledResponseRequest(rtrvSchReq); retrieveScheduledResponseResponse rtrvSchRespResp; RetrieveScheduledResponse rtrvSchResp; // Keep sending the request until the entire response is received do { Console.WriteLine("Polling for scheduled request"); System.Threading.Thread.Sleep(PerSecurity.PollInterval); rtrvSchRespResp = ps.retrieveScheduledResponse(rtrvSchRespReq); rtrvSchResp = rtrvSchRespResp.retrieveScheduledResponse; }while (rtrvSchResp.statusCode.code == PerSecurity.DataNotAvailable); Console.WriteLine(rtrvSchResp.responseId); for (int i = 0; i < rtrvSchResp.fileDatas.Length; i++) { if (rtrvSchResp.fileDatas[i].responseId == sbmtGetDtResp.responseId) { Console.WriteLine("Response ID requested by submit getdata request: " + rtrvSchResp.fileDatas[i].responseId); } else { Console.WriteLine("Response ID: " + rtrvSchResp.fileDatas[i].responseId + "\n"); } Console.WriteLine("Response Header for retrieve schedule request"); Dictionary <string, dynamic> headerRef = new Dictionary <string, dynamic>(); headerRef.Add("getdata", rtrvSchResp.fileDatas[i].headers.getdataHeaders); headerRef.Add("gethistory", rtrvSchResp.fileDatas[i].headers.gethistoryHeaders); headerRef.Add("getquotes", rtrvSchResp.fileDatas[i].headers.getquotesHeaders); headerRef.Add("getallquotes", rtrvSchResp.fileDatas[i].headers.getallquotesHeaders); headerRef.Add("getactions", rtrvSchResp.fileDatas[i].headers.getactionsHeaders); headerRef.Add("getcompany", rtrvSchResp.fileDatas[i].headers.getcompanyHeaders); headerRef.Add("getfundamentals", rtrvSchResp.fileDatas[i].headers.getfundamentalsHeaders); foreach (KeyValuePair <string, dynamic> header in headerRef) { if (header.Value != null) { Console.WriteLine("ProgramName: " + header.Key); Console.WriteLine("Date: " + header.Value.rundate + " Time: " + header.Value.time + " Scheduled: " + header.Value.programflag); if (rtrvSchResp.fileDatas[i].fields != null) { Console.WriteLine("Fields"); for (int j = 0; j < rtrvSchResp.fileDatas[i].fields.Length; j++) { Console.WriteLine(rtrvSchResp.fileDatas[i].fields[j]); } } if (rtrvSchResp.fileDatas[i].instruments != null) { Console.WriteLine("Instruments"); for (int j = 0; j < rtrvSchResp.fileDatas[i].instruments.instrument.Length; j++) { Console.WriteLine("ID: " + rtrvSchResp.fileDatas[i].instruments.instrument[j].id + " Type: " + rtrvSchResp.fileDatas[i].instruments.instrument[j].type); } } } } } // Sending a request to cancel the request for the daily job CancelHeaders cancelHeaders = new CancelHeaders(); cancelHeaders.programflag = ProgramFlag.daily; SubmitCancelRequest sbCancelReq = new SubmitCancelRequest(); // use the responce id of the original multiday request submitted above. sbCancelReq.responseId = new string[] { sbmtGetDtResp.responseId }; sbCancelReq.headers = cancelHeaders; Console.WriteLine("Submit Cancel request"); submitCancelRequestRequest sbCancelReqReq = new submitCancelRequestRequest(sbCancelReq); submitCancelRequestResponse sbCancelReqResp = ps.submitCancelRequest(sbCancelReqReq); SubmitCancelResponse sbCancelResp = sbCancelReqResp.submitCancelResponse; if (sbCancelResp.statusCode.code == 0) { Console.WriteLine("Submit Cancel request response ID: " + sbCancelResp.responseId); } // Checked the scheduled request to check if the daily job has been removed SubmitScheduledRequest sbmtSchReqCheck = new SubmitScheduledRequest(); Console.WriteLine("Submit scheduled request"); submitScheduledRequestRequest sbmtSchReqReqCheck = new submitScheduledRequestRequest(sbmtSchReqCheck); submitScheduledRequestResponse sbmtSchReqRespCheck = ps.submitScheduledRequest(sbmtSchReqReqCheck); SubmitScheduledResponse sbmtSchRespCheck = sbmtSchReqRespCheck.submitScheduledResponse; Console.WriteLine("Submit Schedule request responseID : " + sbmtSchRespCheck.responseId + "\n"); Console.WriteLine("Retrieve scheduled request"); RetrieveScheduledRequest schReqCheck = new RetrieveScheduledRequest(); schReqCheck.responseId = sbmtSchRespCheck.responseId; retrieveScheduledResponseRequest schRespReqCheck = new retrieveScheduledResponseRequest(schReqCheck); retrieveScheduledResponseResponse schRespRespCheck; RetrieveScheduledResponse schRespCheck; int pollCnt = 0; do { System.Threading.Thread.Sleep(PerSecurity.PollInterval); schRespRespCheck = ps.retrieveScheduledResponse(schRespReqCheck); schRespCheck = schRespRespCheck.retrieveScheduledResponse; pollCnt++; }while (schRespCheck.fileDatas == null && pollCnt < 5); // Keep polling for few times Console.WriteLine("response ID for retrieveSchedule respone: " + schRespCheck.responseId); bool flag = false; string dispRespId = null; if (schRespCheck.fileDatas != null) { for (int i = 0; i < schRespCheck.fileDatas.Length; i++) { if (schRespCheck.fileDatas[i].responseId == sbmtGetDtResp.responseId) { flag = true; dispRespId = schRespCheck.fileDatas[i].responseId; break; } } } if (flag) { Console.WriteLine("The daily job with response ID: " + dispRespId + " was not cancelled successfully"); } else { Console.WriteLine("The daily job was cancelled successfully"); } } catch (Exception e) { Console.WriteLine(e.Message + e.StackTrace); } }
public void run(PerSecurity_Dotnet.PerSecurityWSDL.PerSecurityWS ps) { //Set request header GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.secmaster = true; getDataHeaders.secmasterSpecified = true; getDataHeaders.closingvalues = true; getDataHeaders.closingvaluesSpecified = true; //Defining the instruments for the bulk request Instrument ticker = new Instrument(); ticker.id = "IBM US"; ticker.yellowkeySpecified = true; ticker.yellowkey = MarketSector.Equity; ticker.typeSpecified = false; ticker.type = InstrumentType.TICKER; Console.WriteLine("Submit get Data request"); SubmitGetDataRequest sbmtGtDtreq = new SubmitGetDataRequest(); sbmtGtDtreq.headers = getDataHeaders; sbmtGtDtreq.fields = new string[]{"TOP_ANALYST_PERFORM_RANK_TRR"};//Bulk field Instruments instrs = new Instruments(); instrs.instrument = new Instrument[] { ticker }; sbmtGtDtreq.instruments = instrs; try { SubmitGetDataResponse sbmtGtDtresp = ps.submitGetDataRequest(sbmtGtDtreq); System.Console.WriteLine("Request ID = " + sbmtGtDtresp.requestId + " " + sbmtGtDtresp.responseId); System.Console.WriteLine("status of Get Data request : " + sbmtGtDtresp.statusCode.description); Console.WriteLine("Retrieve get data request"); RetrieveGetDataRequest rtrvGtDrReq = new RetrieveGetDataRequest(); rtrvGtDrReq.responseId = sbmtGtDtresp.responseId; RetrieveGetDataResponse rtrvGtDrResp = new RetrieveGetDataResponse(); do { System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL); rtrvGtDrResp = ps.retrieveGetDataResponse(rtrvGtDrReq); } while(rtrvGtDrResp.statusCode.code==PerSecurity.DATA_NOT_AVAILABLE); if(rtrvGtDrResp.statusCode.code==PerSecurity.SUCCESS){ Console.WriteLine("Response ID " + rtrvGtDrResp.responseId); for (int i = 0; i < rtrvGtDrResp.instrumentDatas.Length; i++) { System.Console.WriteLine("Data for :" + rtrvGtDrResp.instrumentDatas[i].instrument.id + " " + rtrvGtDrResp.instrumentDatas[i].instrument.yellowkey); for (int j = 0; j < rtrvGtDrResp.instrumentDatas[i].data.Length; j++) { if (rtrvGtDrResp.instrumentDatas[i].data[j].isArray == true) { for (int k = 0; k < rtrvGtDrResp.instrumentDatas[i].data[j].bulkarray.Length; k++) { Console.WriteLine("-------------------------"); for (int l = 0; l < rtrvGtDrResp.instrumentDatas[i].data[j]. bulkarray[k].data.Length; l++) Console.WriteLine(rtrvGtDrResp.instrumentDatas[i]. data[j].bulkarray[k].data[l].value); } } else System.Console.WriteLine(" " + sbmtGtDtreq.fields[j] + " : " + rtrvGtDrResp.instrumentDatas[i].data[j].value); } } } else if (rtrvGtDrResp.statusCode.code == PerSecurity.REQUEST_ERROR) { Console.WriteLine("Error in the submitted request"); } } catch(Exception e) { Console.WriteLine(e.Message); } }
public void run(PerSecurityWSDL.PerSecurityWS ps) { try { // Setting header for the request GetFundamentalsHeaders getFundHeaders = new GetFundamentalsHeaders(); GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.closingvaluesSpecified = true; getDataHeaders.closingvalues = true; getDataHeaders.secmasterSpecified = true; getDataHeaders.secmaster = true; getDataHeaders.derivedSpecified = true; getDataHeaders.derived = true; // Setting instruments for the request Instrument ticker = new Instrument(); ticker.id = "IBM US"; ticker.type = InstrumentType.TICKER; ticker.yellowkey = MarketSector.Equity; Instrument bbUniqueId = new Instrument(); bbUniqueId.id = "EQ0086119600001000"; bbUniqueId.type = InstrumentType.BB_UNIQUE; Instrument[] instr = new Instrument[] { ticker, bbUniqueId }; String[] field = new String[] { "TOP_ANALYST_PERFORM_RANK_TRR" }; // Sending submit get data request SubmitGetDataRequest sbmtGetDtReq = new SubmitGetDataRequest(); sbmtGetDtReq.headers = getDataHeaders; sbmtGetDtReq.fields = field; Instruments instrmnts = new Instruments(); instrmnts.instrument = instr; sbmtGetDtReq.instruments = instrmnts; Console.WriteLine("Sending submit get bulk data request"); SubmitGetDataResponse sbmtGetDtResp = ps .submitGetDataRequest(sbmtGetDtReq); Console.WriteLine("Submit get data request status: " + sbmtGetDtResp.statusCode.description + " response ID: " + sbmtGetDtResp.responseId); // Sending retrieve get data request RetrieveGetDataRequest rtvGetDtReq = new RetrieveGetDataRequest(); rtvGetDtReq.responseId = sbmtGetDtResp.responseId; RetrieveGetDataResponse rtvGetDtResp = new RetrieveGetDataResponse(); Console.WriteLine("Sending retrieve get data request"); // Keep polling for response till the data is available do { System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL); rtvGetDtResp = ps.retrieveGetDataResponse(rtvGetDtReq); } while (rtvGetDtResp.statusCode.code == PerSecurity.DATA_NOT_AVAILABLE); // Display data if (rtvGetDtResp.statusCode.code == PerSecurity.SUCCESS) { Console.WriteLine("Retrieve get data request successful. Response ID: " + rtvGetDtResp.responseId); for (int i = 0; i < rtvGetDtResp.instrumentDatas.Length; i++) { InstrumentData data = rtvGetDtResp.instrumentDatas[i]; Console.WriteLine(data.instrument.id); Data[] datas = data.data; for (int j = 0; j < datas.Length; j++) { //Displaying bulk data if (datas[j].isArray) { for (int k = 0; k < datas[j].bulkarray.Length; k++) for (int l = 0; l < datas[j].bulkarray[k].data.Length; l++) { Console.WriteLine(datas[j].bulkarray[k].data[l].type + ": " + datas[j].bulkarray[k].data[l].value); } } //Displaying non-bulk data else Console.WriteLine(datas[j].value); } } } else if (rtvGetDtResp.statusCode.code == PerSecurity.REQUEST_ERROR) Console.WriteLine("Error in submitted request"); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public void run(PerSecurityWSDL.PerSecurityWS ps) { // Setting request header information GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.secmaster = true; getDataHeaders.secmasterSpecified = true; getDataHeaders.closingvalues = true; getDataHeaders.closingvaluesSpecified = true; getDataHeaders.derived = true; getDataHeaders.derivedSpecified = true; // Setting overrides Override[] ovride = new Override[4]; ovride[0] = new Override(); ovride[0].field = "VWAP_START_DT"; DateTime start = DateTime.Today; // Specifying VWAP_START_DT in yyyymmdd format if (start.Month < 10) { ovride[0].value = start.Year.ToString() + "0" + start.Month.ToString() + start.Day.ToString(); } else { ovride[0].value = start.Year.ToString() + start.Month.ToString() + start.Day.ToString(); } ovride[1] = new Override(); ovride[1].field = "VWAP_END_DT"; DateTime end = DateTime.Today; // Specifying VWAP_END_DT in yyyymmdd format if (start.Month < 10) { ovride[1].value = end.Year.ToString() + "0" + end.Month.ToString() + end.Day.ToString(); } else { ovride[1].value = end.Year.ToString() + end.Month.ToString() + end.Day.ToString(); } ovride[2] = new Override(); ovride[2].field = "VWAP_START_TIME"; ovride[2].value = "10:00"; ovride[3] = new Override(); ovride[3].field = "VWAP_END_TIME"; ovride[3].value = "11:00"; // Setting the instruments for request Instrument bbUniqueId = new Instrument(); bbUniqueId.id = "EQ0086119600001000"; bbUniqueId.yellowkeySpecified = false; bbUniqueId.type = InstrumentType.BB_UNIQUE; bbUniqueId.typeSpecified = true; bbUniqueId.overrides = ovride; Instrument ticker = new Instrument(); ticker.id = "IBM US"; ticker.yellowkeySpecified = true; ticker.yellowkey = MarketSector.Equity; ticker.typeSpecified = false; ticker.type = InstrumentType.TICKER; ticker.overrides = ovride; Instruments instrs = new Instruments(); instrs.instrument = new Instrument[] { ticker, bbUniqueId }; // Setting the getdata request parameter SubmitGetDataRequest sbmtGtDtReq = new SubmitGetDataRequest(); sbmtGtDtReq.headers = getDataHeaders; sbmtGtDtReq.fields = new string[] { "EQY_WEIGHTED_AVG_PX" }; sbmtGtDtReq.instruments = instrs; try { Console.WriteLine("Submit getdata Request"); submitGetDataRequestRequest sbmtGtDtReqReq = new submitGetDataRequestRequest(sbmtGtDtReq); submitGetDataRequestResponse sbmtGtDtReqResp = ps.submitGetDataRequest(sbmtGtDtReqReq); SubmitGetDataResponse sbmtGtDtResp = sbmtGtDtReqResp.submitGetDataResponse; System.Console.WriteLine("status " + sbmtGtDtResp.statusCode.description); System.Console.WriteLine("Submit getdata request - response ID = " + sbmtGtDtResp.responseId); // retrieve getdata request. The response ID sent for the request is the response ID // received from SubmitGetDataRequest() RetrieveGetDataRequest rtrvGtDrReq = new RetrieveGetDataRequest(); rtrvGtDrReq.responseId = sbmtGtDtResp.responseId; retrieveGetDataResponseRequest rtrvGtDrRespReq = new retrieveGetDataResponseRequest(rtrvGtDrReq); retrieveGetDataResponseResponse rtrvGtDrRespResp; RetrieveGetDataResponse rtrvGtDrResp; Console.WriteLine("Retrieve getdata request"); // Keep polling until data becomes available do { System.Threading.Thread.Sleep(PerSecurity.PollInterval); rtrvGtDrRespResp = ps.retrieveGetDataResponse(rtrvGtDrRespReq); rtrvGtDrResp = rtrvGtDrRespResp.retrieveGetDataResponse; }while (rtrvGtDrResp.statusCode.code == PerSecurity.DataNotAvailable); if (rtrvGtDrResp.statusCode.code == PerSecurity.Success) { // Displaying the RetrieveGetDataResponse for (int i = 0; i < rtrvGtDrResp.instrumentDatas.Length; i++) { Console.WriteLine("Data for :" + rtrvGtDrResp.instrumentDatas[i].instrument.id + " " + rtrvGtDrResp.instrumentDatas[i].instrument.yellowkey); for (int j = 0; j < rtrvGtDrResp.instrumentDatas[i].data.Length; j++) { if (rtrvGtDrResp.instrumentDatas[i].data[j].isArray == true) { // In case this is a bulk field request for (int k = 0; k < rtrvGtDrResp.instrumentDatas[i].data[j].bulkarray.Length; k++) { Console.WriteLine("-------------------------"); for (int l = 0; l < rtrvGtDrResp.instrumentDatas[i].data[j]. bulkarray[k].data.Length; l++) { Console.WriteLine(rtrvGtDrResp. instrumentDatas[i].data[j].bulkarray[k].data[l].value); } } } else { Console.WriteLine(" " + rtrvGtDrResp.fields[j] + " : " + rtrvGtDrResp. instrumentDatas[i].data[j].value); } } } } else if (rtrvGtDrResp.statusCode.code == PerSecurity.RequestError) { Console.WriteLine("Error in the submitted request"); } } catch (Exception e) { Console.WriteLine(e.Message + " " + e.StackTrace); } }
public void run(PerSecurity_Dotnet.PerSecurityWSDL.PerSecurityWS ps) { try { // Setting request header information GetDataHeaders getDataHdrs = new GetDataHeaders(); getDataHdrs.secmasterSpecified = true; getDataHdrs.secmaster = true; // Setting instruments for request Instruments instrs = new Instruments(); instrs.macro = new Macro[2]; instrs.macro[0] = new Macro(); instrs.macro[0].primaryQualifier = new PrimaryQualifier(); instrs.macro[0].primaryQualifier.primaryQualifierType = MacroType.SECTYP; instrs.macro[0].primaryQualifier.primaryQualifierValue = "OPT_CHAIN"; instrs.macro[0].secondaryQualifier = new SecondaryQualifier[1]; instrs.macro[0].secondaryQualifier[0] = new SecondaryQualifier(); instrs.macro[0].secondaryQualifier[0].secondaryQualifierOperator = SecondaryQualifierOperator.Equals; instrs.macro[0].secondaryQualifier[0].secondaryQualifierType = SecondaryQualifierType.SECURITY_DES; instrs.macro[0].secondaryQualifier[0].secondaryQualifierValue = "AMZN US Equity"; instrs.macro[0].overrides = new Override[1]; // A sample of incorrect macro instrs.macro[1] = new Macro(); instrs.macro[1].primaryQualifier = new PrimaryQualifier(); instrs.macro[1].primaryQualifier.primaryQualifierType = MacroType.SECTYP; instrs.macro[1].primaryQualifier.primaryQualifierValue = "OPTCHAIN"; instrs.macro[1].secondaryQualifier = new SecondaryQualifier[1]; instrs.macro[1].secondaryQualifier[0] = new SecondaryQualifier(); instrs.macro[1].secondaryQualifier[0].secondaryQualifierOperator = SecondaryQualifierOperator.Equals; instrs.macro[1].secondaryQualifier[0].secondaryQualifierType = SecondaryQualifierType.SECURITY_DES; instrs.macro[1].secondaryQualifier[0].secondaryQualifierValue = "AMZN US Equity"; // Setting fields for the request string[] field = new string[] { "NAME", "TICKER", "PX_LAST" }; // Submit getdata request Console.WriteLine("Sending submit getdata request"); SubmitGetDataRequest sbmtGtDtReq = new SubmitGetDataRequest(); sbmtGtDtReq.headers = getDataHdrs; sbmtGtDtReq.fields = field; sbmtGtDtReq.instruments = instrs; submitGetDataRequestRequest sbmtGtDtReqReq = new submitGetDataRequestRequest(sbmtGtDtReq); submitGetDataRequestResponse sbmtGtDtReqResp = ps.submitGetDataRequest(sbmtGtDtReqReq); SubmitGetDataResponse sbmtGtDtResp = sbmtGtDtReqResp.submitGetDataResponse; System.Console.WriteLine("status " + sbmtGtDtResp.statusCode.description); System.Console.WriteLine("Submit getdata request - response ID = " + sbmtGtDtResp.responseId); // retrieve getdata request. The response ID sent for the request is the response ID // received from SubmitGetDataRequest() RetrieveGetDataRequest rtrvGtDrReq = new RetrieveGetDataRequest(); rtrvGtDrReq.responseId = sbmtGtDtResp.responseId; retrieveGetDataResponseRequest rtrvGtDrRespReq = new retrieveGetDataResponseRequest(rtrvGtDrReq); retrieveGetDataResponseResponse rtrvGtDrRespResp; RetrieveGetDataResponse rtrvGtDrResp; Console.WriteLine("Retrieve getdata request"); // Keep polling until data becomes available do { System.Threading.Thread.Sleep(PerSecurity.PollInterval); rtrvGtDrRespResp = ps.retrieveGetDataResponse(rtrvGtDrRespReq); rtrvGtDrResp = rtrvGtDrRespResp.retrieveGetDataResponse; }while (rtrvGtDrResp.statusCode.code == PerSecurity.DataNotAvailable); if (rtrvGtDrResp.statusCode.code == PerSecurity.Success) { Console.WriteLine("Retrieve getdata request successful"); for (int i = 0; i < rtrvGtDrResp.instrumentDatas.Length; i++) { if (rtrvGtDrResp.instrumentDatas[i].code.Equals("0")) { System.Console.WriteLine("Data for :" + rtrvGtDrResp.instrumentDatas[i].instrument.id + " " + rtrvGtDrResp.instrumentDatas[i].instrument.yellowkey); for (int j = 0; j < rtrvGtDrResp.instrumentDatas[i].data.Length; j++) { if (rtrvGtDrResp.instrumentDatas[i].data[j].isArray == true) { // In case this is a bulk field request for (int k = 0; k < rtrvGtDrResp.instrumentDatas[i].data[j]. bulkarray.Length; k++) { Console.WriteLine("-------------------------"); for (int l = 0; l < rtrvGtDrResp.instrumentDatas[i].data[j]. bulkarray[k].data.Length; l++) { Console.WriteLine(rtrvGtDrResp.instrumentDatas[i].data[j] .bulkarray[k].data[l].value); } } } else { System.Console.WriteLine(" "+ rtrvGtDrResp.fields[j] + " : " + rtrvGtDrResp.instrumentDatas[i].data[j].value); } } } // If an incorrect macro was passed in the request, display the error code and the incorrect macro else { System.Console.WriteLine("\n Error Code " + rtrvGtDrResp.instrumentDatas[i].code + ": incorrect macro. The Macro object is as follows:"); Console.WriteLine("Primary Qualifier -"); Console.WriteLine("Primary Qualifier type:" + rtrvGtDrResp.instrumentDatas[i]. macro.primaryQualifier.primaryQualifierType); Console.WriteLine("Primary Qualifier value:" + rtrvGtDrResp.instrumentDatas[i]. macro.primaryQualifier.primaryQualifierValue); Console.WriteLine("Secondary Qualifier -"); for (int l = 0; l < rtrvGtDrResp.instrumentDatas[i].macro.secondaryQualifier.Length; l++) { Console.WriteLine("Secondary Qualifier type :" + rtrvGtDrResp.instrumentDatas[i]. macro.secondaryQualifier[l].secondaryQualifierType); Console.WriteLine("Secondary Qualifier Value :" + rtrvGtDrResp.instrumentDatas[i]. macro.secondaryQualifier[l].secondaryQualifierValue); Console.WriteLine("Secondary Qualifier Operator :" + rtrvGtDrResp.instrumentDatas[i]. macro.secondaryQualifier[l].secondaryQualifierOperator); } } } } else if (rtrvGtDrResp.statusCode.code == PerSecurity.RequestError) { Console.WriteLine("Error in the submitted request"); } } catch (Exception e) { Console.WriteLine(e.Message + " " + e.StackTrace); } }
public void run(PerSecurityWSDL.PerSecurityWS ps) { // Setting request header information GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.secmaster = true; getDataHeaders.secmasterSpecified = true; getDataHeaders.closingvalues = true; getDataHeaders.closingvaluesSpecified = true; getDataHeaders.derived = true; getDataHeaders.derivedSpecified = true; // Setting Instrument information Instrument bbUniqueId1 = new Instrument(); bbUniqueId1.id = "EQ0010174300001000"; bbUniqueId1.type = InstrumentType.BB_UNIQUE; bbUniqueId1.typeSpecified = true; Instrument ticker = new Instrument(); ticker.id = "IBM"; ticker.yellowkey = MarketSector.Equity; ticker.yellowkeySpecified = true; ticker.type = InstrumentType.TICKER; ticker.typeSpecified = true; Instrument bbUniqueId2 = new Instrument(); bbUniqueId2.id = "US0231351067"; bbUniqueId2.type = InstrumentType.ISIN; bbUniqueId2.typeSpecified = true; // group all instrument into a single instance of type Instruments. Instruments instrs = new Instruments(); instrs.instrument = new Instrument[] { bbUniqueId1, ticker, bbUniqueId2 }; System.Collections.Generic.List <Instrument> instrsList = new System.Collections.Generic.List <Instrument>(); // Setting the getdata request parameter SubmitGetDataRequest sbmtGtDtReq = new SubmitGetDataRequest(); sbmtGtDtReq.headers = getDataHeaders; sbmtGtDtReq.fields = new string[] { "ID_BB_UNIQUE", "PX_LAST" }; // sbmtGtDtReq.instruments = new Instruments(); sbmtGtDtReq.instruments = instrs; try { Console.WriteLine("Submit getdata Request"); submitGetDataRequestRequest sbmtGtDtReqReq = new submitGetDataRequestRequest(sbmtGtDtReq); submitGetDataRequestResponse sbmtGtDtReqResp = ps.submitGetDataRequest(sbmtGtDtReqReq); SubmitGetDataResponse sbmtGtDtResp = sbmtGtDtReqResp.submitGetDataResponse; System.Console.WriteLine("status " + sbmtGtDtResp.statusCode.description); System.Console.WriteLine("Submit getdata request - response ID = " + sbmtGtDtResp.responseId); // retrieve getdata request. The response ID sent for the request is the response ID // received from SubmitGetDataRequest() RetrieveGetDataRequest rtrvGtDrReq = new RetrieveGetDataRequest(); rtrvGtDrReq.responseId = sbmtGtDtResp.responseId; retrieveGetDataResponseRequest rtrvGtDrRespReq = new retrieveGetDataResponseRequest(rtrvGtDrReq); retrieveGetDataResponseResponse rtrvGtDrRespResp; RetrieveGetDataResponse rtrvGtDrResp; Console.WriteLine("Retrieve getdata request"); // Keep polling until data becomes available do { System.Threading.Thread.Sleep(PerSecurity.PollInterval); rtrvGtDrRespResp = ps.retrieveGetDataResponse(rtrvGtDrRespReq); rtrvGtDrResp = rtrvGtDrRespResp.retrieveGetDataResponse; }while (rtrvGtDrResp.statusCode.code == PerSecurity.DataNotAvailable); if (rtrvGtDrResp.statusCode.code == PerSecurity.Success) { // Displaying the RetrieveGetDataResponse for (int i = 0; i < rtrvGtDrResp.instrumentDatas.Length; i++) { Console.WriteLine("Data for :" + rtrvGtDrResp.instrumentDatas[i].instrument.id + " " + rtrvGtDrResp.instrumentDatas[i].instrument.yellowkey); for (int j = 0; j < rtrvGtDrResp.instrumentDatas[i].data.Length; j++) { if (rtrvGtDrResp.instrumentDatas[i].data[j].isArray == true) { // In case this is a bulk field request for (int k = 0; k < rtrvGtDrResp.instrumentDatas[i].data[j].bulkarray.Length; k++) { Console.WriteLine("-------------------------"); for (int l = 0; l < rtrvGtDrResp.instrumentDatas[i].data[j]. bulkarray[k].data.Length; l++) { Console.WriteLine(rtrvGtDrResp. instrumentDatas[i].data[j].bulkarray[k].data[l].value); } } } else { Console.WriteLine(" " + rtrvGtDrResp.fields[j] + " : " + rtrvGtDrResp. instrumentDatas[i].data[j].value); } } } } else if (rtrvGtDrResp.statusCode.code == PerSecurity.RequestError) { Console.WriteLine("Error in the submitted request"); } } catch (Exception e) { Console.WriteLine(e.Message + " " + e.StackTrace); } }
public void run(PerSecurityWSDL.PerSecurityWS ps) { try { // Setting headers for the request GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.closingvaluesSpecified = true; getDataHeaders.closingvalues = true; getDataHeaders.secmasterSpecified = true; getDataHeaders.secmaster = true; getDataHeaders.derivedSpecified = true; getDataHeaders.derived = true; // Setting list of instruments for data request Instrument ticker = new Instrument(); ticker = new Instrument(); ticker.id = "IBM US"; ticker.type = InstrumentType.TICKER; ticker.yellowkey = MarketSector.Equity; Instrument[] instr = new Instrument[] { ticker }; string[] field = new string[] { "ID_BB_UNIQUE", "TICKER", "PX_LAST", "PX_ASK", "PX_BID", "VWAP_DT" }; BvalFieldSet fieldset = new BvalFieldSet(); fieldset.fieldmacro = BvalFieldMacro.BVAL_BOND; Instruments instrmnts = new Instruments(); instrmnts.instrument = instr; // Submit getdata request SubmitGetDataRequest sbmtGetDtReq = new SubmitGetDataRequest(); sbmtGetDtReq.headers = getDataHeaders; sbmtGetDtReq.fields = field; sbmtGetDtReq.fieldsets = new BvalFieldSet[] { fieldset }; sbmtGetDtReq.instruments = instrmnts; Console.WriteLine("Sending submit getdata request"); submitGetDataRequestRequest sbmtGetDtReqReq = new submitGetDataRequestRequest(sbmtGetDtReq); submitGetDataRequestResponse sbmtGetDtReqResp = ps.submitGetDataRequest(sbmtGetDtReqReq); SubmitGetDataResponse sbmtGetDtResp = sbmtGetDtReqResp.submitGetDataResponse; Console.WriteLine("Submit getdata request status: " + sbmtGetDtResp.statusCode.description + " responseId: " + sbmtGetDtResp.responseId); // Submit retrieve data RetrieveGetDataRequest rtvGetDtReq = new RetrieveGetDataRequest(); rtvGetDtReq.responseId = sbmtGetDtResp.responseId; retrieveGetDataResponseRequest rtvGetDtRespReq = new retrieveGetDataResponseRequest(rtvGetDtReq); retrieveGetDataResponseResponse rtvGetDtRespResp; RetrieveGetDataResponse rtvGetDtResp; Console.WriteLine("Sending retrieve getdata request"); // Keep polling for response till the data is available do { System.Threading.Thread.Sleep(PerSecurity.PollInterval); rtvGetDtRespResp = ps.retrieveGetDataResponse(rtvGetDtRespReq); rtvGetDtResp = rtvGetDtRespResp.retrieveGetDataResponse; } while (rtvGetDtResp.statusCode.code == PerSecurity.DataNotAvailable); // Display data if (rtvGetDtResp.statusCode.code == PerSecurity.Success) { Console.WriteLine("Retrieve getdata request successful. Response ID:" + rtvGetDtResp.responseId); for (int i = 0; i < rtvGetDtResp.instrumentDatas.Length; i++) { Console.WriteLine("Data for :" + rtvGetDtResp.instrumentDatas[i].instrument.id + " " + rtvGetDtResp.instrumentDatas[i].instrument.yellowkey); for (int j = 0; j < rtvGetDtResp.instrumentDatas[i].data.Length; j++) { Console.WriteLine(" " + rtvGetDtResp.fields[j] + ": " + rtvGetDtResp.instrumentDatas[i].data[j].value); } } } else if (rtvGetDtResp.statusCode.code == PerSecurity.RequestError) { Console.WriteLine("Error in submitted request"); } } catch (Exception e) { Console.WriteLine(e.Message); } }
public void run(PerSecurityWSDL.PerSecurityWS ps) { try { // Setting headers GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.programflagSpecified = true; getDataHeaders.programflag = ProgramFlag.daily; getDataHeaders.rundate = DateTime.Today.ToString("yyyyMMdd"); getDataHeaders.time = "2200"; getDataHeaders.specialchar = SpecialChar.fraction; getDataHeaders.dateformat = DateFormat.ddmmyyyy; getDataHeaders.dateformatSpecified = true; getDataHeaders.secmaster = true; getDataHeaders.derived = true; // Setting Instrument information Instrument bbUniqueId = new Instrument(); bbUniqueId.id = "EQ0086119600001000"; bbUniqueId.type = InstrumentType.BB_UNIQUE; bbUniqueId.typeSpecified = true; Instrument ticker = new Instrument(); ticker.id = "IBM"; ticker.yellowkey = MarketSector.Equity; ticker.yellowkeySpecified = true; ticker.type = InstrumentType.TICKER; ticker.typeSpecified = true; Instruments instrs1 = new Instruments(); instrs1.instrument = new Instrument[] { ticker }; Instruments instrs2 = new Instruments(); instrs2.instrument = new Instrument[] { bbUniqueId }; SubmitGetDataRequest sbmtGtDtReq1 = new SubmitGetDataRequest(); sbmtGtDtReq1.headers = getDataHeaders; sbmtGtDtReq1.fields = new string[] { "PX_LAST" }; sbmtGtDtReq1.instruments = instrs1; SubmitGetDataRequest sbmtGtDtReq2 = new SubmitGetDataRequest(); sbmtGtDtReq2.headers = getDataHeaders; sbmtGtDtReq2.fields = new string[] { "PX_LAST" }; sbmtGtDtReq2.instruments = instrs2; submitGetDataRequestRequest sbmtGtDtReqReq1 = new submitGetDataRequestRequest(sbmtGtDtReq1); submitGetDataRequestRequest sbmtGtDtReqReq2 = new submitGetDataRequestRequest(sbmtGtDtReq2); submitGetDataRequestResponse sbmtGtDtReqResp1 = new submitGetDataRequestResponse(); submitGetDataRequestResponse sbmtGtDtReqResp2 = new submitGetDataRequestResponse(); sbmtGtDtReqResp1 = ps.submitGetDataRequest(sbmtGtDtReqReq1); sbmtGtDtReqResp2 = ps.submitGetDataRequest(sbmtGtDtReqReq1); SubmitGetDataResponse sbmtGtDtResp1 = sbmtGtDtReqResp1.submitGetDataResponse; SubmitGetDataResponse sbmtGtDtResp2 = sbmtGtDtReqResp2.submitGetDataResponse; Console.WriteLine("Scheduled Req 1 GetData --> " + sbmtGtDtResp1.responseId); Console.WriteLine("Scheduled Req 2 GetData --> " + sbmtGtDtResp2.responseId); System.Threading.Thread.Sleep(30000); string[] responseIds = { sbmtGtDtResp1.responseId, sbmtGtDtResp2.responseId, "dummy_id.out" }; CancelHeaders cancelHeaders = new CancelHeaders(); cancelHeaders.programflag = ProgramFlag.monthly; SubmitCancelRequest submitCancelReq = new SubmitCancelRequest(); submitCancelReq.headers = cancelHeaders; submitCancelReq.responseId = responseIds; submitCancelRequestRequest submitCancelReqReq = new submitCancelRequestRequest(submitCancelReq); submitCancelRequestResponse submitCancelReqResp = new submitCancelRequestResponse(); SubmitCancelResponse submitCancelResp; Console.WriteLine("Sending submit cancel request"); do { System.Threading.Thread.Sleep(PerSecurity.PollInterval); submitCancelReqResp = ps.submitCancelRequest(submitCancelReqReq); submitCancelResp = submitCancelReqResp.submitCancelResponse; Console.WriteLine("Submit cancel request status: " + submitCancelResp.statusCode.description + " responseId: " + submitCancelResp.responseId); } while (submitCancelResp.statusCode.code == PerSecurity.DataNotAvailable); RetrieveCancelRequest retrieveCancelReq = new RetrieveCancelRequest(); retrieveCancelReq.responseId = submitCancelResp.responseId; retrieveCancelResponseRequest retrieveCancelRespReq = new retrieveCancelResponseRequest(retrieveCancelReq); retrieveCancelResponseResponse retrieveCancelRespResp; RetrieveCancelResponse retrieveCancelResp; Console.WriteLine("Sending retrieve cancel request"); // Keep polling for response till the data is available do { System.Threading.Thread.Sleep(PerSecurity.PollInterval); retrieveCancelRespResp = ps.retrieveCancelResponse(retrieveCancelRespReq); retrieveCancelResp = retrieveCancelRespResp.retrieveCancelResponse; } while (retrieveCancelResp.statusCode.code == PerSecurity.DataNotAvailable); // Display data if (retrieveCancelResp.statusCode.code == PerSecurity.Success) { Console.WriteLine("Retrieve cancel request successful."); CancelResponseStatus[] ls = retrieveCancelResp.cancelResponseStatus; for (int i = 0; i < ls.Length; i++) { Console.WriteLine("The cancel status for response id :" + ls[i].responseId + " is " + ls[i].cancelStatus.ToString()); } } else if (retrieveCancelResp.statusCode.code == PerSecurity.RequestError) { Console.WriteLine("Error in submitted request"); } } catch (Exception e) { Console.WriteLine(e.Message); } }
public void run(PerSecurityWS ps) { try { //Setting overrides Override[] ovride = new Override[4]; ovride[0] = new Override(); ovride[0].field = "VWAP_START_DT"; DateTime start = DateTime.Today; ovride[0].value = start.ToString();// "20080227"; ovride[1] = new Override(); ovride[1].field = "VWAP_END_DT"; DateTime end = DateTime.Today.Subtract(TimeSpan.FromDays(5)); ovride[1].value = end.ToString();//"20080227"; ovride[2] = new Override(); ovride[2].field = "VWAP_START_TIME"; ovride[2].value = "1000"; ovride[3] = new Override(); ovride[3].field = "VWAP_END_TIME"; ovride[3].value = "1100"; //Setting the instruments for request Instrument bbUniqueId = new Instrument(); bbUniqueId.id = "EQ0086119600001000"; bbUniqueId.yellowkeySpecified = false; bbUniqueId.type = InstrumentType.BB_UNIQUE; bbUniqueId.typeSpecified = true; bbUniqueId.overrides = ovride; Instrument ticker = new Instrument(); ticker.id = "IBM US"; ticker.yellowkeySpecified = true; ticker.yellowkey = MarketSector.Equity; ticker.typeSpecified = false; ticker.type = InstrumentType.TICKER; ticker.overrides = ovride; //Setting request header GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.secmaster = true; getDataHeaders.secmasterSpecified = true; getDataHeaders.closingvalues = true; getDataHeaders.closingvaluesSpecified = true; getDataHeaders.programflag = ProgramFlag.daily; getDataHeaders.rundate = DateTime.Today.ToString(); getDataHeaders.time = "1430"; getDataHeaders.derived = true; //Submit get data request Console.WriteLine("Submit get data request"); SubmitGetDataRequest sbmtGtDrReq = new SubmitGetDataRequest(); sbmtGtDrReq.headers = getDataHeaders; sbmtGtDrReq.fields = new string[]{"ID_BB_UNIQUE","TICKER","PX_LAST","PX_ASK","PX_BID","VWAP_DT"}; Instruments instrs = new Instruments(); instrs.instrument = new Instrument[] {ticker, bbUniqueId}; sbmtGtDrReq.instruments = instrs; SubmitGetDataResponse sbmtGetDtResp= ps.submitGetDataRequest(sbmtGtDrReq); System.Console.WriteLine("Submit get data response Id = " + sbmtGetDtResp.responseId + "\n"); System.Threading.Thread.Sleep(100000); //Submit scheduled request for the get data request sent above Console.WriteLine("Submit scheduled request"); SubmitScheduledRequest sbmtSchReq = new SubmitScheduledRequest(); SubmitScheduledResponse sbmtSchResp = ps.submitScheduledRequest(sbmtSchReq); Console.WriteLine("Submit Schedule request responseID : " + sbmtSchResp.responseId + "\n"); //Submit retrieve scheduled request to display all the scheduled files and check to see //if the daily job requested was addeds Console.WriteLine("Retrieve scheduled request"); RetrieveScheduledRequest schReq = new RetrieveScheduledRequest(); schReq.responseId = sbmtSchResp.responseId; RetrieveScheduledResponse schResp = new RetrieveScheduledResponse(); //Keep sending the request until the entire response is received do { System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL); schResp = ps.retrieveScheduledResponse(schReq); } while(schResp.statusCode.code==PerSecurity.DATA_NOT_AVAILABLE); Console.WriteLine(schResp.responseId); for(int i=0;i<schResp.fileDatas.Length;i++) { if (schResp.fileDatas[i].responseId == sbmtGetDtResp.responseId) Console.WriteLine("Response ID requested by submit get data request: " + schResp.fileDatas[i].responseId); else Console.WriteLine("Response ID: " + schResp.fileDatas[i].responseId + "\n"); Console.WriteLine("Response Header for retrieve schedule request"); Console.WriteLine("Date: " + schResp.fileDatas[i].headers.getdataHeaders.rundate + " Time: " + schResp.fileDatas[i].headers.getdataHeaders.time + " Scheduled: " + schResp.fileDatas[i].headers.getdataHeaders.programflag); Console.WriteLine("Fields"); for(int j=0;j<schResp.fileDatas[i].fields.Length;j++) { Console.WriteLine(schResp.fileDatas[i].fields[j]); } Console.WriteLine("Instruments"); for(int j=0;j<schResp.fileDatas[i].instruments.instrument.Length;j++) { Console.WriteLine("ID: " + schResp.fileDatas[i].instruments.instrument[j].id + "Type: " + schResp.fileDatas[i].instruments.instrument[j].type); } } //Sending a request to cancel the request for the daily job Console.WriteLine("Submit Cancel request"); CancelHeaders cancelHeaders = new CancelHeaders(); cancelHeaders.programflag = ProgramFlag.daily; SubmitCancelRequest sbCancelReq = new SubmitCancelRequest(); sbCancelReq.responseId[0] = sbmtGetDtResp.responseId; sbCancelReq.headers = cancelHeaders; Boolean flag = true; SubmitCancelResponse sbCancelResp = ps.submitCancelRequest(sbCancelReq); if(sbCancelResp.statusCode.code==0) { Console.WriteLine("Submit Cancel request response ID: " + sbCancelResp.responseId); } //Checked the scheduled request to check if the daily job has been removed Console.WriteLine("Submit scheduled request"); SubmitScheduledRequest sbmtSchReqCheck = new SubmitScheduledRequest(); SubmitScheduledResponse sbmtSchRespCheck = ps.submitScheduledRequest(sbmtSchReqCheck); Console.WriteLine("Submit Schedule request responseID : " + sbmtSchRespCheck.responseId + "\n"); Console.WriteLine("Retrieve scheduled request"); RetrieveScheduledRequest schReqCheck = new RetrieveScheduledRequest(); schReqCheck.responseId = sbmtSchRespCheck.responseId; RetrieveScheduledResponse schRespCheck = new RetrieveScheduledResponse(); do { System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL); schRespCheck = ps.retrieveScheduledResponse(schReqCheck); } while(schRespCheck.fileDatas==null); Console.WriteLine("response ID for retrieveSchedule respone: " + schResp.responseId); String dispRespId = null; for(int i=0;i<schRespCheck.fileDatas.Length;i++) { if(schRespCheck.fileDatas[i].responseId==sbmtGetDtResp.responseId) { flag= true; dispRespId = schRespCheck.fileDatas[i].responseId; } else flag=false; } if(flag) Console.WriteLine("The daily job with response ID: " + dispRespId + "wasnt cancelled successfully"); else Console.WriteLine("The daily job was cancelled successfully"); } catch(Exception e) { Console.WriteLine(e.Message + e.StackTrace); } }
public void run(PerSecurity_Dotnet.PerSecurityWSDL.PerSecurityWS ps) { // Set request header GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.secmaster = true; getDataHeaders.secmasterSpecified = true; // Defining the instruments Instrument ticker = new Instrument(); ticker.id = "IBM US"; ticker.yellowkeySpecified = true; ticker.yellowkey = MarketSector.Equity; ticker.typeSpecified = false; ticker.type = InstrumentType.TICKER; Console.WriteLine("Submit getdata request"); SubmitGetDataRequest sbmtGtDtreq = new SubmitGetDataRequest(); sbmtGtDtreq.headers = getDataHeaders; sbmtGtDtreq.fields = new string[] { "OPT_CHAIN" }; Instruments instrs = new Instruments(); instrs.instrument = new Instrument[] { ticker }; sbmtGtDtreq.instruments = instrs; submitGetDataRequestRequest sbmtGtDtreqReq = new submitGetDataRequestRequest(sbmtGtDtreq); submitGetDataRequestResponse sbmtGtDtReqResp; try { sbmtGtDtReqResp = ps.submitGetDataRequest(sbmtGtDtreqReq); SubmitGetDataResponse sbmtGtDtResp = sbmtGtDtReqResp.submitGetDataResponse; System.Console.WriteLine("Request ID = " + sbmtGtDtResp.requestId + " " + sbmtGtDtResp.responseId); System.Console.WriteLine("status of getdata request : " + sbmtGtDtResp.statusCode.description); Console.WriteLine("Retrieve getdata request"); RetrieveGetDataRequest rtrvGtDrReq = new RetrieveGetDataRequest(); rtrvGtDrReq.responseId = sbmtGtDtResp.responseId; retrieveGetDataResponseRequest rtrvGtDrRespReq = new retrieveGetDataResponseRequest(rtrvGtDrReq); retrieveGetDataResponseResponse rtrvGtDrRespResp = new retrieveGetDataResponseResponse(); RetrieveGetDataResponse rtrvGtDrResp; do { System.Threading.Thread.Sleep(PerSecurity.PollInterval); rtrvGtDrRespResp = ps.retrieveGetDataResponse(rtrvGtDrRespReq); rtrvGtDrResp = rtrvGtDrRespResp.retrieveGetDataResponse; }while (rtrvGtDrResp.statusCode.code == PerSecurity.DataNotAvailable); if (rtrvGtDrResp.statusCode.code == PerSecurity.Success) { Console.WriteLine("Response ID " + rtrvGtDrResp.responseId); for (int i = 0; i < rtrvGtDrResp.instrumentDatas.Length; i++) { System.Console.WriteLine("Data for :" + rtrvGtDrResp.instrumentDatas[i].instrument.id + " " + rtrvGtDrResp.instrumentDatas[i].instrument.yellowkey); for (int j = 0; j < rtrvGtDrResp.instrumentDatas[i].data.Length; j++) { if (rtrvGtDrResp.instrumentDatas[i].data[j].isArray) { for (int k = 0; k < rtrvGtDrResp.instrumentDatas[i].data[j].bulkarray.Length; k++) { Console.WriteLine("-------------------------"); for (int l = 0; l < rtrvGtDrResp.instrumentDatas[i].data[j]. bulkarray[k].data.Length; l++) { Console.WriteLine(rtrvGtDrResp.instrumentDatas[i]. data[j].bulkarray[k].data[l].value); } } } else { System.Console.WriteLine(" "+ sbmtGtDtreq.fields[j] + " : " + rtrvGtDrResp.instrumentDatas[i].data[j].value); } } } } else if (rtrvGtDrResp.statusCode.code == PerSecurity.RequestError) { Console.WriteLine("Error in the submitted request"); } } catch (Exception e) { Console.WriteLine(e.Message); } }
public void run(PerSecurityWSDL.PerSecurityWS ps) { try{ // Setting headers for the request GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.closingvaluesSpecified = true; getDataHeaders.closingvalues = true; getDataHeaders.secmasterSpecified = true; getDataHeaders.secmaster = true; getDataHeaders.derivedSpecified = true; getDataHeaders.derived = true; // Setting list of instruments for data request Instrument ticker = new Instrument(); ticker = new Instrument(); ticker.id = "IBM US"; ticker.type= InstrumentType.TICKER; ticker.yellowkey = MarketSector.Equity; Instrument[] instr = new Instrument[] { ticker }; String[] field = new String[] { "ID_BB_UNIQUE", "TICKER", "PX_LAST", "PX_ASK", "PX_BID", "VWAP_DT" }; BvalFieldSet fieldset = new BvalFieldSet(); fieldset.fieldmacro = BvalFieldMacro.BVAL_BOND; // Submit get data request SubmitGetDataRequest sbmtGetDtReq = new SubmitGetDataRequest(); sbmtGetDtReq.headers = getDataHeaders; sbmtGetDtReq.fields = field; sbmtGetDtReq.fieldsets = new BvalFieldSet[] { fieldset }; Instruments instrmnts = new Instruments(); instrmnts.instrument = instr; sbmtGetDtReq.instruments = instrmnts ; Console.WriteLine("Sending submit get data request"); SubmitGetDataResponse sbmtGetDtResp = ps .submitGetDataRequest(sbmtGetDtReq); Console.WriteLine("Submit get data request status: " + sbmtGetDtResp.statusCode.description + " responseId: " + sbmtGetDtResp.responseId); // Submit retrieve data RetrieveGetDataRequest rtvGetDtReq = new RetrieveGetDataRequest(); rtvGetDtReq.responseId = sbmtGetDtResp.responseId; RetrieveGetDataResponse rtvGetDtResp = new RetrieveGetDataResponse(); Console.WriteLine("Sending retrieve get data request"); // Keep polling for response till the data is available do { System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL); rtvGetDtResp = ps.retrieveGetDataResponse(rtvGetDtReq); } while (rtvGetDtResp.statusCode.code == PerSecurity.DATA_NOT_AVAILABLE); // Display data if (rtvGetDtResp.statusCode.code == PerSecurity.SUCCESS) { Console.WriteLine("Retrieve get data request successful. Response ID:" + rtvGetDtResp.responseId); for (int i = 0; i < rtvGetDtResp.instrumentDatas.Length; i++) { Console.WriteLine("Data for :" + rtvGetDtResp.instrumentDatas[i].instrument.id + " " + rtvGetDtResp.instrumentDatas[i].instrument.yellowkey); for (int j = 0; j < rtvGetDtResp.instrumentDatas[i].data.Length; j++) { Console.WriteLine(" " + rtvGetDtResp.fields[j] + ": " + rtvGetDtResp.instrumentDatas[i].data[j].value); } } } else if (rtvGetDtResp.statusCode.code == PerSecurity.REQUEST_ERROR) Console.WriteLine("Error in submitted request"); } catch (Exception e) { Console.WriteLine(e.Message); } }
public void run(PerSecurityWSDL.PerSecurityWS ps) { //Setting request header information GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.secmaster = true; getDataHeaders.secmasterSpecified = true; getDataHeaders.closingvalues = true; getDataHeaders.closingvaluesSpecified = true; getDataHeaders.derived = true; getDataHeaders.derivedSpecified = true; //Setting Instrument information //Instrument bbUniqueId = new Instrument(); //bbUniqueId.id = "EQ0086119600001000"; //bbUniqueId.type = InstrumentType.BB_UNIQUE; //bbUniqueId.typeSpecified = true; //Instrument ticker = new Instrument(); //ticker.id = "IBM"; //ticker.yellowkey = MarketSector.Equity; //ticker.yellowkeySpecified = true; //ticker.type = InstrumentType.TICKER; //ticker.typeSpecified = true; Instrument bbUniqueId = new Instrument(); bbUniqueId.id = "GB0003252318"; bbUniqueId.type = InstrumentType.ISIN; bbUniqueId.typeSpecified = true; //Setting the get data request parameter SubmitGetDataRequest sbmtGtDtreq = new SubmitGetDataRequest(); sbmtGtDtreq.headers = getDataHeaders; // sbmtGtDtreq.fields = new string[] { "ID_BB_UNIQUE", "TICKER", "PX_LAST", "PX_ASK", "PX_BID", "VWAP_DT" }; sbmtGtDtreq.fields = new string[] { "ID_BB_UNIQUE", "PX_LAST"}; Instruments instrs = new Instruments(); System.Collections.Generic.List<Instrument> instrsList = new System.Collections.Generic.List<Instrument>(); // instrsList.Add(ticker); instrsList.Add(bbUniqueId); //instrs.instrument = new Instrument[] { ticker, bbUniqueId }; instrs.instrument = new Instrument[] {bbUniqueId }; sbmtGtDtreq.instruments = new Instruments(); sbmtGtDtreq.instruments = instrs; try { Console.WriteLine("Submit Get Data Request"); SubmitGetDataResponse sbmtGtDtresp = ps.submitGetDataRequest(sbmtGtDtreq); System.Console.WriteLine("status " + sbmtGtDtresp.statusCode.description); System.Console.WriteLine("Submit Get Data request - response ID = " + sbmtGtDtresp.responseId); //retrieve get data request. The response ID sent for the request is the response ID //received from SubmitGetDataRequest() Console.WriteLine("Retrieve data request"); RetrieveGetDataRequest rtrvGtDrReq = new RetrieveGetDataRequest(); rtrvGtDrReq.responseId = sbmtGtDtresp.responseId; RetrieveGetDataResponse rtrvGtDrResp = new RetrieveGetDataResponse(); //Keep sending the request if status is 100 do { System.Threading.Thread.Sleep(PerSecurity.POLL_INTERVAL); rtrvGtDrResp = ps.retrieveGetDataResponse(rtrvGtDrReq); } while (rtrvGtDrResp.statusCode.code == PerSecurity.DATA_NOT_AVAILABLE); if (rtrvGtDrResp.statusCode.code == PerSecurity.SUCCESS) { //Displaying the RetrieveGetDataResponse for (int i = 0; i < rtrvGtDrResp.instrumentDatas.Length; i++) { Console.WriteLine("Data for :" + rtrvGtDrResp.instrumentDatas[i].instrument.id + " " + rtrvGtDrResp.instrumentDatas[i].instrument.yellowkey); for (int j = 0; j < rtrvGtDrResp.instrumentDatas[i].data.Length; j++) { if (rtrvGtDrResp.instrumentDatas[i].data[j].isArray == true) { //In case this is a bulk field request for (int k = 0; k < rtrvGtDrResp.instrumentDatas[i].data[j].bulkarray.Length; k++) { Console.WriteLine("-------------------------"); for (int l = 0; l < rtrvGtDrResp.instrumentDatas[i].data[j]. bulkarray[k].data.Length; l++) Console.WriteLine(rtrvGtDrResp. instrumentDatas[i].data[j].bulkarray[k].data[l].value); } } else Console.WriteLine(" " + sbmtGtDtreq.fields[j] + " : " + rtrvGtDrResp. instrumentDatas[i].data[j].value); } } } else if (rtrvGtDrResp.statusCode.code == PerSecurity.REQUEST_ERROR) Console.WriteLine("Error in the submitted request"); } catch (Exception e) { Console.WriteLine(e.Message + " " + e.StackTrace); } }
public void run(PerSecurityWSDL.PerSecurityWS ps) { try { // Setting request header information GetDataHeaders getDataHeaders = new GetDataHeaders(); getDataHeaders.secmaster = true; getDataHeaders.secmasterSpecified = true; getDataHeaders.derived = true; getDataHeaders.derivedSpecified = true; getDataHeaders.bvaltierSpecified = true; getDataHeaders.bvaltier = 1; // The bval request will run at a scheduled time but the PortfolioValidation Request will get a response after the req file is copied getDataHeaders.bvalsnapshot = BvalSnapshot.ny3pm; getDataHeaders.bvalsnapshotSpecified = true; // Setting Instrument information Instrument instr = new Instrument(); instr.id = "BBG0009P1SC8"; instr.type = InstrumentType.BB_GLOBAL; instr.typeSpecified = true; // group all instrument into a single instance of type Instruments. Instruments instrs = new Instruments(); instrs.instrument = new Instrument[] { instr }; // Setting the getdata request parameter SubmitGetDataRequest sbmtGtDtReq = new SubmitGetDataRequest(); sbmtGtDtReq.headers = getDataHeaders; sbmtGtDtReq.fields = new string[] { "BVAL_BEEM", "BVAL_SNAPSHOT" }; // sbmtGtDtReq.instruments = new Instruments(); sbmtGtDtReq.instruments = instrs; Console.WriteLine("Submit BvalGetData Request"); submitGetDataRequestRequest sbmtGtDtReqReq = new submitGetDataRequestRequest(sbmtGtDtReq); submitGetDataRequestResponse sbmtGtDtReqResp = ps.submitGetDataRequest(sbmtGtDtReqReq); SubmitGetDataResponse sbmtGtDtResp = sbmtGtDtReqResp.submitGetDataResponse; System.Console.WriteLine("status " + sbmtGtDtResp.statusCode.description); System.Console.WriteLine("Submit BvalGetData request - response ID = " + sbmtGtDtResp.responseId); GetPortfolioValidationRequest req = new GetPortfolioValidationRequest(); req.responseId = sbmtGtDtResp.responseId; Console.WriteLine("Sending submit portfolio validation request"); getPortfolioValidationRequest1 req1 = new getPortfolioValidationRequest1(req); getPortfolioValidationResponse1 resp1; GetPortfolioValidationResponse resp; // Keep polling for response till the data is available do { Console.WriteLine("Polling for PortfolioValidation request"); System.Threading.Thread.Sleep(PerSecurity.PollInterval); resp1 = ps.getPortfolioValidation(req1); resp = resp1.getPortfolioValidationResponse; } while (resp.statusCode.code == PerSecurity.DataNotAvailable); // Display data if (resp.statusCode.code == PerSecurity.Success) { Console.WriteLine("Retrieve get quotes request successful. Response ID:" + resp.responseId); for (int i = 0; i < resp.instrumentDatas.Length; i++) { Console.WriteLine("Data for :" + resp.instrumentDatas[i].instrument.id + " " + resp.instrumentDatas[i].instrument.yellowkey); Console.WriteLine("validation code = " + resp.instrumentDatas[i].code.ToString()); } } else if (resp.statusCode.code == PerSecurity.RequestError) { Console.WriteLine("Error in submitted PortfolioValidation request"); } } catch (Exception e) { Console.WriteLine(e.Message + " " + e.StackTrace); } }