public void PeekLocalQueueForStaleMessages() { //clear recent messages on queue from this machine //peek stale messages var controller = new BergController(); controller.OnResurrect(); }
private void StartButton_Click(object sender, EventArgs e) { if (StartButton.Text == "Start") { _bbgController = new BergController(); _bbgController.ApiController.MessageEvent += bbg_MessageEvent; _bbgController.MessageEvent += bbg_MessageEvent; _bbgController.Start(); } else { _bbgController.Stop(); _bbgController.ApiController.MessageEvent -= bbg_MessageEvent; _bbgController.MessageEvent -= bbg_MessageEvent; _bbgController = null; } }
public void ProcessRequestForEquityIndexWeights() { //retrieve bdis var sql = @"select top 1 * from BloombergDatarequestitem where bbfieldlist like '%mwei%' and bbticker = 'ibex index' and insertedwhen > getdate() - 5"; var requestItems = new Database().GetTickerItemsToProcess(sql); var controller = new BergController(); //split into separate lists - one for datawarehouse, one for legacy api, one for bloomberg ad hoc var requestItemsForBloombergApi = requestItems.FindAll(x => controller.IsForLegacyBloombergApi(x)); var requestItemsForBloombergAdHoc = requestItems.FindAll(x => controller.IsForBloombergAdHoc(x)); var requestItemsForDatawarehouse = requestItems.FindAll(x => !controller.IsForLegacyBloombergApi(x) && !controller.IsForBloombergAdHoc(x)); Assert.AreEqual(requestItems.Count, requestItemsForDatawarehouse.Count + requestItemsForBloombergApi.Count + requestItemsForBloombergAdHoc.Count); Assert.AreEqual(1, requestItemsForDatawarehouse.Count); //get errors new TestBloombergDatawarehouse().ProcessDataRequests(requestItemsForDatawarehouse); }
public void GetDataWarehouseRequestItemsFromLiveAndProcessThemInDev() { //retrieve bdis var sqlFile = @"sqls\GetBloombergDataRequestItems.sql"; var controller = new BergController(); var sql = File.ReadAllText(sqlFile); var requestItems = new Database().GetTickerItemsToProcess(sql); //split into separate lists - one for datawarehouse, one for legacy api, one for bloomberg ad hoc var requestItemsForBloombergApi = requestItems.FindAll(x => controller.IsForLegacyBloombergApi(x)); var requestItemsForBloombergAdHoc = requestItems.FindAll(x => controller.IsForBloombergAdHoc(x)); var requestItemsForDatawarehouse = requestItems.FindAll(x => !controller.IsForLegacyBloombergApi(x) && !controller.IsForBloombergAdHoc(x)); Assert.AreEqual(requestItems.Count, requestItemsForDatawarehouse.Count + requestItemsForBloombergApi.Count + requestItemsForBloombergAdHoc.Count); //get errors new TestBloombergDatawarehouse().ProcessDataRequests(requestItemsForDatawarehouse); }
public void Setup() { //local test copy of remote q StringBuilder varname1 = new StringBuilder(); varname1.Append("IF ( EXISTS (SELECT * \n"); varname1.Append(" FROM INFORMATION_SCHEMA.TABLES \n"); varname1.Append(" WHERE TABLE_NAME = 'BloombergAdHocTest') ) \n"); varname1.Append(" BEGIN \n"); varname1.Append(" DROP TABLE [BloombergAdHocTest] \n"); varname1.Append(" END"); Utils.DbController.ExecuteNonQuery(varname1.ToString()); StringBuilder varname11 = new StringBuilder(); varname11.Append("CREATE TABLE [dbo].[BloombergAdHocTest] \n"); varname11.Append(" ( \n"); varname11.Append(" [BloombergAdHocId] [INT] NOT NULL, \n"); varname11.Append(" [FieldsToPull] [VARCHAR](8000) NULL, \n"); varname11.Append(" [SecurityIdentifier] [VARCHAR](50) NULL, \n"); varname11.Append(" [ReturnData] [VARCHAR](8000) NULL, \n"); varname11.Append(" [LastUpdateDatetime] [DATETIME] NULL, \n"); varname11.Append(" [LastUpdateUser] [VARCHAR](50) NULL, \n"); varname11.Append(" [Status] [TINYINT] NULL, \n"); varname11.Append(" [BloombergRequestId] [VARCHAR](50) NULL \n"); varname11.Append(" ) \n"); varname11.Append("ON [PRIMARY]"); Utils.DbController.ExecuteNonQuery(varname11.ToString()); // remote messages - completed, in progress StringBuilder varname12 = new StringBuilder(); varname12.Append("INSERT INTO [dbo].[BloombergAdHocTest] \n"); varname12.Append(" ([BloombergAdHocId] \n"); varname12.Append(" ,[FieldsToPull] \n"); varname12.Append(" ,[SecurityIdentifier] \n"); varname12.Append(" ,[ReturnData] \n"); varname12.Append(" ,[LastUpdateDatetime] \n"); varname12.Append(" ,[LastUpdateUser] \n"); varname12.Append(" ,[Status] \n"); varname12.Append(" ,[BloombergRequestId]) \n"); varname12.Append(" VALUES \n"); varname12.Append(" (263239 \n"); varname12.Append(" ,'PX_ASK,PX_BID,LAST_TRADEABLE_DT,DL_ASSET_CLASS' \n"); varname12.Append(" ,'EDM7 COMB Comdty' \n"); varname12.Append(" ,'99.830000|99.825000|03/13/2017|18|' \n"); varname12.Append(" ,dateadd(MINUTE,-15,dateadd(hour,-5,getdate())) \n"); varname12.Append(" ,'' \n"); varname12.Append(" ,2 \n"); varname12.Append(" ,'6d66eca6-c37f-4332-bd9a-e46918e4bcb1')"); varname12.Append("INSERT INTO [dbo].[BloombergAdHocTest] \n"); varname12.Append(" ([BloombergAdHocId] \n"); varname12.Append(" ,[FieldsToPull] \n"); varname12.Append(" ,[SecurityIdentifier] \n"); varname12.Append(" ,[ReturnData] \n"); varname12.Append(" ,[LastUpdateDatetime] \n"); varname12.Append(" ,[LastUpdateUser] \n"); varname12.Append(" ,[Status] \n"); varname12.Append(" ,[BloombergRequestId]) \n"); varname12.Append(" VALUES \n"); varname12.Append(" (263239 \n"); varname12.Append(" ,'PX_ASK,PX_BID,LAST_TRADEABLE_DT,DL_ASSET_CLASS' \n"); varname12.Append(" ,'EDM8 COMB Comdty' \n"); varname12.Append(" ,'99.830000|99.825000|03/13/2017|18|' \n"); varname12.Append(" ,dateadd(MINUTE,-15,dateadd(hour,-5,getdate())) \n"); varname12.Append(" ,'' \n"); varname12.Append(" ,1 \n"); varname12.Append(" ,'6d66eca6-c37f-4332-bd9a-e46918e4bcb1')"); Utils.DbController.ExecuteNonQuery(varname12.ToString()); //local stale messages 3 messages - they will be foudn to be done , in progress and lost Utils.DbController.ExecuteNonQuery("delete BloombergDataRequestItem where processedby=host_name() and insertedwhen > getdate()-5"); StringBuilder sb = new StringBuilder(); sb.Append("INSERT INTO [dbo].[BloombergDataRequestItem] \n"); sb.Append(" ([RequestType] \n"); sb.Append(" ,[BBTicker] \n"); sb.Append(" ,[BBFieldList] \n"); sb.Append(" ,[DateFrom] \n"); sb.Append(" ,[DateTo] \n"); sb.Append(" ,[Periodicity] \n"); sb.Append(" ,[InsertedWhen] \n"); sb.Append(" ,[ProcessedWhen] \n"); sb.Append(" ,[Processed] \n"); sb.Append(" ,[Error] \n"); sb.Append(" ,[UserID] \n"); sb.Append(" ,[Reference] \n"); sb.Append(" ,[ProcessedBy] \n"); sb.Append(" ,[RequestSetID] \n"); sb.Append(" ,[TargetServer]) \n"); sb.Append(" VALUES \n"); sb.Append(" ('Reference' \n"); sb.Append(" ,'EDM7 COMB Comdty' \n"); sb.Append(" ,'PX_ASK,PX_BID,LAST_TRADEABLE_DT' \n"); sb.Append(" ,null \n"); sb.Append(" ,null \n"); sb.Append(" ,null \n"); sb.Append(" ,dateadd(minute,-30,getdate()) \n"); sb.Append(" ,null \n"); sb.Append(" ,1 \n"); sb.Append(" ,null \n"); sb.Append(" ,'ZeroCouponGenerator - done' \n"); sb.Append(" ,1234 \n"); sb.Append(" ,HOST_NAME() \n"); sb.Append(" ,null \n"); sb.Append(" ,null)"); sb.Append("INSERT INTO [dbo].[BloombergDataRequestItem] \n"); sb.Append(" ([RequestType] \n"); sb.Append(" ,[BBTicker] \n"); sb.Append(" ,[BBFieldList] \n"); sb.Append(" ,[DateFrom] \n"); sb.Append(" ,[DateTo] \n"); sb.Append(" ,[Periodicity] \n"); sb.Append(" ,[InsertedWhen] \n"); sb.Append(" ,[ProcessedWhen] \n"); sb.Append(" ,[Processed] \n"); sb.Append(" ,[Error] \n"); sb.Append(" ,[UserID] \n"); sb.Append(" ,[Reference] \n"); sb.Append(" ,[ProcessedBy] \n"); sb.Append(" ,[RequestSetID] \n"); sb.Append(" ,[TargetServer]) \n"); sb.Append(" VALUES \n"); sb.Append(" ('Reference' \n"); sb.Append(" ,'EDM8 COMB Comdty' \n"); sb.Append(" ,'PX_ASK,PX_BID,LAST_TRADEABLE_DT' \n"); sb.Append(" ,null \n"); sb.Append(" ,null \n"); sb.Append(" ,null \n"); sb.Append(" ,dateadd(minute,-30,getdate()) \n"); sb.Append(" ,null \n"); sb.Append(" ,1 \n"); sb.Append(" ,null \n"); sb.Append(" ,'ZeroCouponGenerator - in progress' \n"); sb.Append(" ,1234 \n"); sb.Append(" ,HOST_NAME() \n"); sb.Append(" ,null \n"); sb.Append(" ,null)"); sb.Append("INSERT INTO [dbo].[BloombergDataRequestItem] \n"); sb.Append(" ([RequestType] \n"); sb.Append(" ,[BBTicker] \n"); sb.Append(" ,[BBFieldList] \n"); sb.Append(" ,[DateFrom] \n"); sb.Append(" ,[DateTo] \n"); sb.Append(" ,[Periodicity] \n"); sb.Append(" ,[InsertedWhen] \n"); sb.Append(" ,[ProcessedWhen] \n"); sb.Append(" ,[Processed] \n"); sb.Append(" ,[Error] \n"); sb.Append(" ,[UserID] \n"); sb.Append(" ,[Reference] \n"); sb.Append(" ,[ProcessedBy] \n"); sb.Append(" ,[RequestSetID] \n"); sb.Append(" ,[TargetServer]) \n"); sb.Append(" VALUES \n"); sb.Append(" ('Reference' \n"); sb.Append(" ,'EDM9 COMB Comdty' \n"); sb.Append(" ,'PX_ASK,PX_BID,LAST_TRADEABLE_DT' \n"); sb.Append(" ,null \n"); sb.Append(" ,null \n"); sb.Append(" ,null \n"); sb.Append(" ,dateadd(minute,-30,getdate()) \n"); sb.Append(" ,null \n"); sb.Append(" ,1 \n"); sb.Append(" ,null \n"); sb.Append(" ,'ZeroCouponGenerator - lost' \n"); sb.Append(" ,1234 \n"); sb.Append(" ,HOST_NAME() \n"); sb.Append(" ,null \n"); sb.Append(" ,null)"); Utils.DbController.ExecuteNonQuery(sb.ToString()); //peek stale messages var controller = new BergController(); var localStales = controller.PeekStaleMessagesFromLocalQueue(); Assert.AreEqual(3, localStales.Count()); }
public void RequestItemRoutingTests() { var controller = new BergController(); var requestItem = new RequestItem { BBFieldList = "PX_LAST", RequestType = BloombergDataInstrument.eRequestType.IntraDayBar, UserId = "IntradayPrices" }; Assert.IsTrue(controller.IsForLegacyBloombergApi(requestItem)); requestItem = new RequestItem { BBFieldList = "PX_LAST", RequestType = BloombergDataInstrument.eRequestType.IntraDayTick, UserId = "IntradayFx" }; Assert.IsTrue(controller.IsForLegacyBloombergApi(requestItem)); requestItem = new RequestItem { BBFieldList = "PX_LAST", RequestType = BloombergDataInstrument.eRequestType.Reference, UserId = "" }; Assert.IsFalse(controller.IsForLegacyBloombergApi(requestItem)); requestItem = new RequestItem { BBFieldList = "PX_LAST,OPT_DELTA_SOMETHING", RequestType = BloombergDataInstrument.eRequestType.Reference, UserId = "" }; Assert.IsFalse(controller.IsForLegacyBloombergApi(requestItem)); requestItem = new RequestItem { BBFieldList = "SW_VAL_PREMIUM....", RequestType = BloombergDataInstrument.eRequestType.Reference, UserId = "" }; Assert.IsFalse(controller.IsForLegacyBloombergApi(requestItem)); requestItem = new RequestItem { BBFieldList = "nSW_VAL_PREMIUM....", RequestType = BloombergDataInstrument.eRequestType.Reference, UserId = "" }; Assert.IsFalse(controller.IsForLegacyBloombergApi(requestItem)); requestItem = new RequestItem { BBFieldList = "RTG_....", RequestType = BloombergDataInstrument.eRequestType.Reference, UserId = "" }; Assert.IsFalse(controller.IsForLegacyBloombergApi(requestItem)); requestItem = new RequestItem { BBFieldList = "RTG....", RequestType = BloombergDataInstrument.eRequestType.Reference, UserId = "" }; Assert.IsFalse(controller.IsForLegacyBloombergApi(requestItem)); requestItem = new RequestItem { BBFieldList = "kjhjkh jkhCALENDAR_NON_SETTLEMENT_DATEskjhjkh", RequestType = BloombergDataInstrument.eRequestType.Reference, UserId = "" }; Assert.IsFalse(controller.IsForLegacyBloombergApi(requestItem)); requestItem = new RequestItem { BBFieldList = "kjhjkh jkhCALENDAR_NON_SETTLEMENT_DATESkjhjkh", RequestType = BloombergDataInstrument.eRequestType.Reference, UserId = "" }; Assert.IsFalse(controller.IsForLegacyBloombergApi(requestItem)); //adhoc test requestItem = new RequestItem { BBFieldList = "kjhjkh jkhCALENDAR_NON_SETTLEMENT_DATESkjhjkh", RequestType = BloombergDataInstrument.eRequestType.Reference, UserId = "StaticDataImport" }; Assert.IsTrue(controller.IsForBloombergAdHoc(requestItem)); }