예제 #1
0
        private static void Test1()
        {
            List <string> testData = new List <string>
            {
                @"8=FIXT.1.19=104235=R34=1849=MA52=20160616-15:11:53.12856=MDGSTAPI131=QuoteReqID-1466089913128-363083146=155=[N/A]48=283483HV022=16360=Education454=1455=US283483HV04456=420200=120201=220202=120203=100.5850000020204=80020205=320206=Unassigned Bonds460=111227=BOND29703=MNPX167=NONE541=20181201225=20061102223=0.05106=EL PASO CNTY COLO SCH DIST NO 49 FALCON GO REF BDS 2006B107=EL PASO CNTY COLO SCH DIST NO 49 FALCON  5.000 12/1/18873=2006110254=238=80000064=2016062115=USD1=TEST660=99581=162=20160616-15:45:00126=20160616-15:15:0060=20160616-15:11:53423=1453=5448=mdgsclt01447=D452=11802=1523=MDGS Client 1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1758=RGNL (N/A) requests  offer on $800,000 283483HV0, due at 11:15 AM EDT, Single-Dealer, .5625=220117=36883155961=MNPrice5626=55215=Y5627=Submitted5630=Respond, Pass20120=C2D-RFQ-Open21031=N21032=N20066=368831420067=120013=0.0110=147",
                @"8=FIXT.1.19=31935=S34=1849=MDGSTAPI52=20160616-15:11:53.51156=MA22=138=80048=cusip54=255=N/A117=order_123131=QuoteReqID-1466089913128-363083133=100.58500000135=800423=1460=11537=15626=46886=12020120=C2D-RFQ-Open453=4448=MDGS447=C452=1448=mdgstest447=D452=12448=ML-PEND447=C452=12448=ML-PEND447=C452=1210=061",
                @"8=FIXT.1.19=14735=j34=1949=MA52=20160616-15:11:53.58256=MDGSTAPI45=18372=S379=order_123380=058=Invalid MarketAxess InquiryID20117=-120120=C2D-RFQ-Open10=221",
                @"8=FIXT.1.19=81735=AI34=2349=MA52=20160616-15:13:48.37556=MDGSTAPI453=5448=mdgsclt01447=D452=11802=1523=MDGS Client 1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=283483HV022=16360=Education454=1455=US283483HV04456=4460=111227=BOND29703=MNPX167=NONE541=20181201225=20061102223=0.05106=EL PASO CNTY COLO SCH DIST NO 49 FALCON GO REF BDS 2006B107=EL PASO CNTY COLO SCH DIST NO 49 FALCON  5.000 12/1/18873=2006110254=238=80000064=2016062115=USD1=TEST660=99581=1423=160=20160616-15:13:48297=1758=RGNL (N/A) has cancelled the Offer List20117=36883155626=55627=Client CXL5630=None20120=C2D-RFQ-Open20066=368831420013=0.015215=Y5625=25961=MNPrice21031=N21032=N10=081",
                @"8=FIXT.1.19=104035=R34=3349=MA52=20160616-15:18:41.04856=MDGSTAPI131=QuoteReqID-1466090321040-13984146=155=[N/A]48=283483HV022=16360=Education454=1455=US283483HV04456=420200=120201=220202=120203=99.5500000020204=80020205=320206=Unassigned Bonds460=111227=BOND29703=MNPX167=NONE541=20181201225=20061102223=0.05106=EL PASO CNTY COLO SCH DIST NO 49 FALCON GO REF BDS 2006B107=EL PASO CNTY COLO SCH DIST NO 49 FALCON  5.000 12/1/18873=2006110254=238=80000064=2016062115=USD1=TEST660=99581=162=20160616-15:50:00126=20160616-15:20:0060=20160616-15:18:41423=1453=5448=mdgsclt01447=D452=11802=1523=MDGS Client 1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1758=RGNL (N/A) requests  offer on $800,000 283483HV0, due at 11:20 AM EDT, Multi-Dealers, .5625=220117=36883385961=MNPrice5626=55215=Y5627=Submitted5630=Respond, Pass20120=C2D-RFQ-Open21031=N21032=N20066=368833720067=120013=0.0110=070",
                @"8=FIXT.1.19=31735=S34=3249=MDGSTAPI52=20160616-15:18:41.08156=MA22=138=80048=cusip54=255=N/A117=order_123131=QuoteReqID-1466090321040-13984133=99.55000000135=800423=1460=11537=15626=46886=12020120=C2D-RFQ-Open453=4448=MDGS447=C452=1448=mdgstest447=D452=12448=ML-PEND447=C452=12448=ML-PEND447=C452=1210=210",
                @"8=FIXT.1.19=14735=j34=3449=MA52=20160616-15:18:41.10356=MDGSTAPI45=32372=S379=order_123380=058=Invalid MarketAxess InquiryID20117=-120120=C2D-RFQ-Open10=207",
                @"8=FIXT.1.19=81935=AI34=3749=MA52=20160616-15:20:00.08756=MDGSTAPI453=5448=mdgsclt01447=D452=11802=1523=MDGS Client 1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=283483HV022=16360=Education454=1455=US283483HV04456=4460=111227=BOND29703=MNPX167=NONE541=20181201225=20061102223=0.05106=EL PASO CNTY COLO SCH DIST NO 49 FALCON GO REF BDS 2006B107=EL PASO CNTY COLO SCH DIST NO 49 FALCON  5.000 12/1/18873=2006110254=238=80000064=2016062115=USD1=TEST660=99581=1126=20160616-15:50:00423=160=20160616-15:20:00297=758=MDGS has failed to respond20117=36883385626=55627=Live5630=None20120=C2D-RFQ-Open20066=368833720013=0.015215=Y5625=25961=MNPrice21031=N21032=N10=250",
                @"8=FIXT.1.19=80835=AI34=3849=MA52=20160616-15:20:00.09256=MDGSTAPI453=5448=mdgsclt01447=D452=11802=1523=MDGS Client 1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=283483HV022=16360=Education454=1455=US283483HV04456=4460=111227=BOND29703=MNPX167=NONE541=20181201225=20061102223=0.05106=EL PASO CNTY COLO SCH DIST NO 49 FALCON GO REF BDS 2006B107=EL PASO CNTY COLO SCH DIST NO 49 FALCON  5.000 12/1/18873=2006110254=238=80000064=2016062115=USD1=TEST660=99581=1126=20160616-15:50:00423=160=20160616-15:20:00297=1758=TIMED-OUT20117=36883385626=55627=Timed Out5630=None20120=C2D-RFQ-Open20066=368833720013=0.015215=Y5625=25961=MNPrice21031=N21032=N10=079",
                @"8=FIXT.1.19=94735=R34=14849=MA52=20160616-16:15:06.96656=MDGSTAPI131=QuoteReqID-1466093706966-160761146=155=[N/A]48=274146BV022=16360=Education454=1455=US274146BV08456=4460=111227=BOND29703=MNPX167=NONE541=20210201225=19980408223=0.0106=EAST ORANGE N J BRD ED CTFS PARTN COPS 1998107=EAST ORANGE N J BRD ED CTFS PARTN COPS 1 0.000 2/1/21873=1998040854=138=5000064=2016062115=USD1=TEST660=99581=162=20160616-16:19:00126=20160616-16:17:0060=20160616-16:15:06423=1453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1758=RGNL (N/A) requests  bid on $50,000 274146BV0, due at 12:17 PM EDT, Multi-Dealers, .5625=220117=36884095961=MNPrice5626=55215=Y5627=Submitted5630=Respond, Pass20120=C2D-RFQ-Open21031=N21032=N20066=368840820067=120013=0.0110=150",
                @"8=FIXT.1.19=81135=AI34=15249=MA52=20160616-16:17:00.07556=MDGSTAPI453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=274146BV022=16360=Education454=1455=US274146BV08456=4460=111227=BOND29703=MNPX167=NONE541=20210201225=19980408223=0.0106=EAST ORANGE N J BRD ED CTFS PARTN COPS 1998107=EAST ORANGE N J BRD ED CTFS PARTN COPS 1 0.000 2/1/21873=1998040854=138=5000064=2016062115=USD1=TEST660=99581=1126=20160616-16:19:00423=160=20160616-16:17:00297=758=MDGS has failed to respond20117=36884095626=55627=Live5630=None20120=C2D-RFQ-Open20066=368840820013=0.015215=Y5625=25961=MNPrice21031=N21032=N10=061",
                @"8=FIXT.1.19=80035=AI34=15349=MA52=20160616-16:17:00.26256=MDGSTAPI453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=274146BV022=16360=Education454=1455=US274146BV08456=4460=111227=BOND29703=MNPX167=NONE541=20210201225=19980408223=0.0106=EAST ORANGE N J BRD ED CTFS PARTN COPS 1998107=EAST ORANGE N J BRD ED CTFS PARTN COPS 1 0.000 2/1/21873=1998040854=138=5000064=2016062115=USD1=TEST660=99581=1126=20160616-16:19:00423=160=20160616-16:17:00297=1758=TIMED-OUT20117=36884095626=55627=Timed Out5630=None20120=C2D-RFQ-Open20066=368840820013=0.015215=Y5625=25961=MNPrice21031=N21032=N10=148",
                @"8=FIXT.1.19=93435=R34=18649=MA52=20160616-16:33:11.21556=MDGSTAPI131=QuoteReqID-1466094791214-315125146=155=[N/A]48=971567LZ322=16360=Various Purpose454=1455=US971567LZ37456=4460=111227=BOND29703=MNPX167=NONE541=20251201225=20080626223=0.04375106=WILMINGTON DEL GO BDS 2008-A107=WILMINGTON DEL GO BDS 2008-A 4.375 12/1/25873=2008062654=138=10000064=2016062115=USD1=TEST660=99581=162=20160616-16:37:00126=20160616-16:35:0060=20160616-16:33:11423=1453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1758=RGNL (N/A) requests  bid on $100,000 971567LZ3, due at 12:35 PM EDT, Multi-Dealers, .5625=220117=36884415961=MNPrice5626=55215=Y5627=Submitted5630=Respond, Pass20120=C2D-RFQ-Open21031=N21032=N20066=368844020067=120013=0.01510=203",
                @"8=FIXT.1.19=79735=AI34=19049=MA52=20160616-16:35:00.16356=MDGSTAPI453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=971567LZ322=16360=Various Purpose454=1455=US971567LZ37456=4460=111227=BOND29703=MNPX167=NONE541=20251201225=20080626223=0.04375106=WILMINGTON DEL GO BDS 2008-A107=WILMINGTON DEL GO BDS 2008-A 4.375 12/1/25873=2008062654=138=10000064=2016062115=USD1=TEST660=99581=1126=20160616-16:37:00423=160=20160616-16:35:00297=758=MDGS has failed to respond20117=36884415626=55627=Live5630=None20120=C2D-RFQ-Open20066=368844020013=0.0155215=Y5625=25961=MNPrice21031=N21032=N10=091",
                @"8=FIXT.1.19=78635=AI34=19149=MA52=20160616-16:35:00.16756=MDGSTAPI453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=971567LZ322=16360=Various Purpose454=1455=US971567LZ37456=4460=111227=BOND29703=MNPX167=NONE541=20251201225=20080626223=0.04375106=WILMINGTON DEL GO BDS 2008-A107=WILMINGTON DEL GO BDS 2008-A 4.375 12/1/25873=2008062654=138=10000064=2016062115=USD1=TEST660=99581=1126=20160616-16:37:00423=160=20160616-16:35:00297=1758=TIMED-OUT20117=36884415626=55627=Timed Out5630=None20120=C2D-RFQ-Open20066=368844020013=0.0155215=Y5625=25961=MNPrice21031=N21032=N10=184",
                @"8=FIXT.1.19=96135=R34=19449=MA52=20160616-16:36:28.03856=MDGSTAPI131=QuoteReqID-1466094988038-50669146=155=[N/A]48=5742162Z922=16360=Health454=1455=US5742162Z94456=4460=111227=BOND29703=MNPX167=NONE541=20380815225=19981217223=0.0525106=MARYLAND ST HEALTH  HIGHER EDL FACS AUTH REV BDS SER A107=MARYLAND ST HEALTH  HIGHER EDL FACS AUTH 5.250 8/15/38873=1998120154=138=10000064=2016062115=USD1=TEST660=99581=162=20160616-16:41:00126=20160616-16:39:0060=20160616-16:36:27423=1453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1758=RGNL (N/A) requests  bid on $100,000 5742162Z9, due at 12:39 PM EDT, Multi-Dealers, .5625=220117=36884505961=MNPrice5626=55215=Y5627=Submitted5630=Respond, Pass20120=C2D-RFQ-Open21031=N21032=N20066=368844920067=120013=0.01510=017",
                @"8=FIXT.1.19=82535=AI34=20049=MA52=20160616-16:39:00.27956=MDGSTAPI453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=5742162Z922=16360=Health454=1455=US5742162Z94456=4460=111227=BOND29703=MNPX167=NONE541=20380815225=19981217223=0.0525106=MARYLAND ST HEALTH  HIGHER EDL FACS AUTH REV BDS SER A107=MARYLAND ST HEALTH  HIGHER EDL FACS AUTH 5.250 8/15/38873=1998120154=138=10000064=2016062115=USD1=TEST660=99581=1126=20160616-16:41:00423=160=20160616-16:39:00297=758=MDGS has failed to respond20117=36884505626=55627=Live5630=None20120=C2D-RFQ-Open20066=368844920013=0.0155215=Y5625=25961=MNPrice21031=N21032=N10=187",
                @"8=FIXT.1.19=81435=AI34=20149=MA52=20160616-16:39:00.28556=MDGSTAPI453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=5742162Z922=16360=Health454=1455=US5742162Z94456=4460=111227=BOND29703=MNPX167=NONE541=20380815225=19981217223=0.0525106=MARYLAND ST HEALTH  HIGHER EDL FACS AUTH REV BDS SER A107=MARYLAND ST HEALTH  HIGHER EDL FACS AUTH 5.250 8/15/38873=1998120154=138=10000064=2016062115=USD1=TEST660=99581=1126=20160616-16:41:00423=160=20160616-16:39:00297=1758=TIMED-OUT20117=36884505626=55627=Timed Out5630=None20120=C2D-RFQ-Open20066=368844920013=0.0155215=Y5625=25961=MNPrice21031=N21032=N10=017",
                @"8=FIXT.1.19=92735=R34=37549=MA52=20160616-18:06:15.99356=MDGSTAPI131=QuoteReqID-1466100375993-409175146=155=[N/A]48=971567KW122=16360=Various Purpose454=1455=US971567KW15456=4460=111227=BOND29703=MNPX167=NONE541=20190601225=20070531223=0.04106=WILMINGTON DEL GO BDS 2007A107=WILMINGTON DEL GO BDS 2007A 4.000 6/1/19873=2007053154=138=10000064=2016062115=USD1=TEST660=99581=162=20160616-18:11:00126=20160616-18:09:0060=20160616-18:06:15423=1453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1758=RGNL (N/A) requests  bid on $100,000 971567KW1, due at 2:09 PM EDT, Multi-Dealers, .5625=220117=36885855961=MNPrice5626=55215=Y5627=Submitted5630=Respond, Pass20120=C2D-RFQ-Open21031=N21032=N20066=368858420067=120013=0.01510=128",
                @"8=FIXT.1.19=79135=AI34=38149=MA52=20160616-18:09:00.13056=MDGSTAPI453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=971567KW122=16360=Various Purpose454=1455=US971567KW15456=4460=111227=BOND29703=MNPX167=NONE541=20190601225=20070531223=0.04106=WILMINGTON DEL GO BDS 2007A107=WILMINGTON DEL GO BDS 2007A 4.000 6/1/19873=2007053154=138=10000064=2016062115=USD1=TEST660=99581=1126=20160616-18:11:00423=160=20160616-18:09:00297=758=MDGS has failed to respond20117=36885855626=55627=Live5630=None20120=C2D-RFQ-Open20066=368858420013=0.0155215=Y5625=25961=MNPrice21031=N21032=N10=027",
                @"8=FIXT.1.19=78035=AI34=38249=MA52=20160616-18:09:00.13156=MDGSTAPI453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=971567KW122=16360=Various Purpose454=1455=US971567KW15456=4460=111227=BOND29703=MNPX167=NONE541=20190601225=20070531223=0.04106=WILMINGTON DEL GO BDS 2007A107=WILMINGTON DEL GO BDS 2007A 4.000 6/1/19873=2007053154=138=10000064=2016062115=USD1=TEST660=99581=1126=20160616-18:11:00423=160=20160616-18:09:00297=1758=TIMED-OUT20117=36885855626=55627=Timed Out5630=None20120=C2D-RFQ-Open20066=368858420013=0.0155215=Y5625=25961=MNPrice21031=N21032=N10=117",
                @"8=FIXT.1.19=95035=R34=41949=MA52=20160616-18:27:12.43456=MDGSTAPI131=QuoteReqID-1466101632434-393594146=155=[N/A]48=956695VR822=16360=Utility454=1455=US956695VR80456=4460=111227=BOND29703=MNPX167=NONE541=20161101225=20060214223=0.04106=WEST VIRGINIA ST WTR DEV AUTH REF BDS 2006 A-II107=WEST VIRGINIA ST WTR DEV AUTH REF BDS 20 4.000 11/1/16873=2006021454=138=5000064=2016062115=USD1=TEST660=99581=162=20160616-18:31:00126=20160616-18:29:0060=20160616-18:27:12423=1453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1758=RGNL (N/A) requests  bid on $50,000 956695VR8, due at 2:29 PM EDT, Multi-Dealers, .5625=220117=36886095961=MNPrice5626=55215=Y5627=Submitted5630=Respond, Pass20120=C2D-RFQ-Open21031=N21032=N20066=368860820067=120013=0.0110=212",
                @"8=FIXT.1.19=81535=AI34=42349=MA52=20160616-18:29:00.05556=MDGSTAPI453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=956695VR822=16360=Utility454=1455=US956695VR80456=4460=111227=BOND29703=MNPX167=NONE541=20161101225=20060214223=0.04106=WEST VIRGINIA ST WTR DEV AUTH REF BDS 2006 A-II107=WEST VIRGINIA ST WTR DEV AUTH REF BDS 20 4.000 11/1/16873=2006021454=138=5000064=2016062115=USD1=TEST660=99581=1126=20160616-18:31:00423=160=20160616-18:29:00297=758=MDGS has failed to respond20117=36886095626=55627=Live5630=None20120=C2D-RFQ-Open20066=368860820013=0.015215=Y5625=25961=MNPrice21031=N21032=N10=158",
                @"8=FIXT.1.19=80435=AI34=42449=MA52=20160616-18:29:00.05556=MDGSTAPI453=5448=rbcstpcl1447=D452=11802=1523=RBC Test STP Client1803=9448=ML-PEND447=C452=13448=STP Capital Management, Inc.447=D452=13448=MDGS447=C452=17802=1523=0103803=17448=Middlegate Securities Ltd447=D452=1755=[N/A]48=956695VR822=16360=Utility454=1455=US956695VR80456=4460=111227=BOND29703=MNPX167=NONE541=20161101225=20060214223=0.04106=WEST VIRGINIA ST WTR DEV AUTH REF BDS 2006 A-II107=WEST VIRGINIA ST WTR DEV AUTH REF BDS 20 4.000 11/1/16873=2006021454=138=5000064=2016062115=USD1=TEST660=99581=1126=20160616-18:31:00423=160=20160616-18:29:00297=1758=TIMED-OUT20117=36886095626=55627=Timed Out5630=None20120=C2D-RFQ-Open20066=368860820013=0.015215=Y5625=25961=MNPrice21031=N21032=N10=247",

                /*
                 * //Bad Checksum
                 * @"8=FIX.4.29=6335=A49=FABKOM56=WEDB34=98352=20160328-18:25:4298=0108=3010=666",
                 * @"8=FIX.4.29=6335=A49=FABKOM56=WEDB34=98352=20160328-18:25:4298=0108=3010=128",
                 * @"8=FIX.4.49=24435=s34=549=sender52=20060319-09:08:20.88156=target22=840=244=948=ABC55=ABC60=20060319-09:08:19548=184214549=2550=0552=254=138=9453=2448=8447=D452=4448=AAA35777447=D452=354=238=9453=2448=8447=D452=4448=aaa447=D452=310=1008=FIX.4.49=24435=s34=549=sender52=20060319-09:08:20.88156=target22=840=244=948=ABC55=ABC60=20060319-09:08:19548=184214549=2550=0552=254=138=9453=2448=8447=D452=4448=AAA35777447=D452=354=238=9453=2448=8447=D452=4448=aaa447=D452=310=1008=FIX.4.49=24435=s34=549=sender52=20060319-09:08:20.88156=target22=840=244=948=ABC55=ABC60=20060319-09:08:19548=184214549=2550=0552=254=138=9453=2448=8447=D452=4448=AAA35777447=D452=354=238=9453=2448=8447=D452=4448=aaa447=D452=310=1008=FIX.4.49=24435=s34=549=sender52=20060319-09:08:20.88156=target22=840=244=948=ABC55=ABC60=20060319-09:08:19548=184214549=2550=0552=254=138=9453=2448=8447=D452=4448=AAA35777447=D452=354=238=9453=2448=8447=D452=4448=aaa447=D452=310=100",
                 * @"8=FIX.4.29=6635=234=34349=WEDB52=20160328-18:25:44.12556=FABKOM7=92316=010=001",
                 * @"8=FIX.4.29=6935=449=FABKOM56=WEDB52=20160328-18:25:4434=92343=Y123=Y36=98410=211",
                 * @"8=FIX.4.29=5135=049=FABKOM56=WEDB34=98452=20160328-18:26:1210=082",
                 * @"8=FIX.4.29=5535=034=34449=WEDB52=20160328-18:26:14.95856=FABKOM10=034",
                 * @"8=FIX.4.29=6135=149=FABKOM56=WEDB34=98552=20160328-18:26:19112=HELLO10=162",
                 * @"8=FIX.4.29=6535=034=34549=WEDB52=20160328-18:26:22.95856=FABKOM112=HELLO10=105",
                 * @"8=FIX.4.29=6335=A49=FABKOM56=WEDB34=98752=20160328-18:27:3098=0108=3010=131",
                 * @"8=FIX.4.29=6735=A34=34749=WEDB52=20160328-18:27:30.69456=FABKOM98=0108=3010=078",
                 * @"8=FIX.4.29=6635=234=34849=WEDB52=20160328-18:27:30.69456=FABKOM7=98616=010=023",
                 * @"8=FIX.4.29=6935=449=FABKOM56=WEDB52=20160328-18:27:3034=98643=Y123=Y36=98810=221",
                 * @"8=FIXT.1.19=091735=849=BLPSTP56=JEFFMATTSTP34=3626347=UTF-852=20160504-18:31:1060=20160504-18:31:10150=F31=100151=0541=2026021932=100000423=164=201605066=10037=VCON:20160504:50357:5157=7438=10000039=2159=709.17669=100460=3223=0.034514=10000015=USD75=20160504106=IBM CORP17=VCON:20160504:50357:5:12167=CORP48=459200JG7198=3739:20160504:50357:5470=US381=10000022=154=17014=2155=[N/A]236=0.034495675118=100709.17453=6448=9001447=D452=1448=14112330447=D452=11802=5523=14803=4523=JEFF DOLGOS803=9523=SAFETY HARBOR803=34523=US803=38523=13182636803=4000448=6204326447=D452=12802=3523=EVAN HOFFMAN803=9523=NEW YORK803=34523=US803=38448=JEFFREY MATTHEWS FINL GROUP, LLC.447=D452=13448=SXT447=D452=16448=6204326447=D452=36802=3523=EVAN HOFFMAN803=9523=NEW YORK803=34523=US803=38454=4455=US459200JG74456=4455=459200JG7456=1455=JK138051456=A455=IBM456=810=118"
                 */
            };

            FIXConverter fixConv = FIXConverter.CreateInstance(sFIXDictionary);

            foreach (var line in testData)
            {
                XElement xe = fixConv.BuildXMLFromString(line);
                Debug.WriteLine(xe.ToString());
                //string sjson = fixConv.BuildJSONFromString(line);
                //Debug.WriteLine(sjson);
                Debug.WriteLine(new string('-', 80));
            }
        }
예제 #2
0
        public MainWindow()
        {
            sFIXDictionary = Properties.Settings.Default.sFIXDictionary;

            InitializeComponent();
            fixConv = FIXConverter.CreateInstance(sFIXDictionary);
            txtDictionaryInUse.Text = sFIXDictionary;
        }
예제 #3
0
        private static void Test2(string testDataFileName)
        {
            FIXConverter fixConv = FIXConverter.CreateInstance(sFIXDictionary);

            var sw = Stopwatch.StartNew();

            const Int32 BufferSize = 16384;
            int         counter = 0, err_counter = 0;
            FileInfo    f        = new FileInfo(testDataFileName);
            long        fileSize = f.Length;

            using (var fileStream = File.OpenRead(testDataFileName))
                using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, BufferSize))
                {
                    string line = null;
                    Console.WriteLine(string.Format("Processing: {0}", testDataFileName));
                    int cursorLeft = Console.CursorLeft;
                    int cursorTop  = Console.CursorTop;

                    while ((line = streamReader.ReadLine()) != null)
                    {
                        try
                        {
                            sw.Stop();
                            Console.SetCursorPosition(cursorLeft, cursorTop);
                            Console.WriteLine($"Line: {counter++,10}  File Stream Position: {(fileStream.Position / (fileSize * 1.0)) * 100}%");
                            sw.Start();

                            //XElement xe = fixConv.BuildXMLFromString(line);
                            var sJSON = fixConv.BuildJSONFromString(line);

                            using (System.IO.StreamWriter file = new System.IO.StreamWriter(testDataFileName + ".out", true))
                            {
                                file.WriteLine(sJSON + Environment.NewLine);
                            }
                        }
                        catch (Exception ex)
                        {
                            err_counter++;
                            Debug.WriteLine("");
                            Debug.WriteLine(new string('!', 80));
                            Debug.WriteLine(line);
                            Debug.WriteLine(new string('-', 80));
                            Debug.WriteLine(ex.ToString());
                            Debug.WriteLine(new string('!', 80));
                            Debug.WriteLine("");
                        }
                        //Debug.WriteLine(xe.ToString());
                        //Debug.WriteLine(new string('-', 80));
                    }
                }
            sw.Stop();
            Console.WriteLine(string.Format("Processed: {0} records in {1} sec. Errors: [{2}]  ", counter, sw.ElapsedMilliseconds / 1000.00, err_counter));
            Console.WriteLine(string.Format("Avg Speed: {0}  Rec./sec.", (counter * 1.0 / (sw.ElapsedMilliseconds / 1000)).ToString("F3")));
            Console.WriteLine("");
        }
예제 #4
0
        private static void Test3(string testDataFileName)
        {
            FIXConverter fixConv = FIXConverter.CreateInstance(sFIXDictionary);

            var pfp = new QuickFIXLogFileProcessor()
            {
                FIXConverter = fixConv,
                FileName     = testDataFileName
            };

            pfp.ProcessFileAsync();
        }
예제 #5
0
        private void btnLoadDictionary_Click(object sender, RoutedEventArgs e)
        {
            Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
            dlg.InitialDirectory = AssemblyDirectory;
            dlg.DefaultExt       = ".xml";
            dlg.Filter           = "FIX Dictionary Files (*.xml)|*.xml|All Files (*.*)|*.*";
            Nullable <bool> result = dlg.ShowDialog();

            if (result == true)
            {
                sFIXDictionary = dlg.FileName;
                FIXConverter.LoadDictionary(sFIXDictionary);
                txtDictionaryInUse.Text = sFIXDictionary;
            }
        }
        private Task <int> ProcessChunk(StreamLimits sl)
        {
            Task <int> chunk = Task <int> .Factory.StartNew(() =>
            {
                string dumpFileName = string.Format("{0}.{1}.dump", FileName, Task.CurrentId);
                string line;
                int lines = 0;
                using (FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read))
                    using (System.IO.StreamWriter dumpFile = new System.IO.StreamWriter(dumpFileName, false))
                    {
                        fs.Seek(sl.startPosition, SeekOrigin.Begin);
                        using (StreamReader streamReader = new StreamReader(fs))
                        {
                            while ((line = streamReader.ReadLine()) != null)
                            {
                                try
                                {
                                    //Console.WriteLine("{0} {1}", Task.CurrentId, line);

                                    var xe = FIXConverter.BuildXMLFromString(line);
                                    lines++;
                                    if (streamReader.BaseStream.Position >= sl.endPosition)
                                    {
                                        break;
                                    }
                                    else
                                    {
                                        dumpFile.WriteLine(line);
                                    }
                                }
                                catch (Exception)
                                {
                                }
                            }
                        }
                    }
                return(lines);
            });

            return(chunk);
        }
        private void btnLoadDictionary_Click(object sender, RoutedEventArgs e)
        {
            Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
            dlg.InitialDirectory = AssemblyDirectory;
            dlg.DefaultExt       = ".xml";
            dlg.Filter           = "FIX Dictionary Files (*.xml)|*.xml|All Files (*.*)|*.*";
            Nullable <bool> result = dlg.ShowDialog();

            if (result == true)
            {
                try
                {
                    sFIXDictionary = dlg.FileName;
                    FIXConverter.LoadDictionary(sFIXDictionary);
                    txtDictionaryInUse.Text = sFIXDictionary;
                }
                catch (Exception ex)
                {
                    this.webBrowser.NavigateToString(ex.FeedFormatExceptionHTML($"Failed to load dictionary: {sFIXDictionary}"));
                }
            }
        }