Пример #1
0
        public void PeekLocalQueueForStaleMessages()
        {
            //clear recent messages on queue from this machine

            //peek stale messages
            var controller = new BergController();

            controller.OnResurrect();
        }
Пример #2
0
 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;
     }
 }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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());
        }
Пример #6
0
        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));
        }