示例#1
0
 public FixServerFacade(ClientApplication app,
                        IExecIDGenerator execIDGenerator,
                        IFixMessageGenerator fixMessageGenerator)
 {
     _app = app;
     _execIDGenerator = execIDGenerator;
     _fixMessageGenerator = fixMessageGenerator;
     _app.Fix44ExecReportEvent += HandleExecutionReport;
     _app.LogonEvent += HandleLogon;
     _app.LogoutEvent += HandleLogout;
 }
示例#2
0
 public FixServerFacade(ClientApplication app,
                        IExecIDGenerator execIDGenerator,
                        IFixMessageGenerator fixMessageGenerator)
 {
     _app                       = app;
     _execIDGenerator           = execIDGenerator;
     _fixMessageGenerator       = fixMessageGenerator;
     _app.Fix44ExecReportEvent += HandleExecutionReport;
     _app.LogonEvent           += HandleLogon;
     _app.LogoutEvent          += HandleLogout;
 }
示例#3
0
        public static IServerFacade CreateFixServer(string configFilepath,
                                                    IFixStrategy fixStrategy,
                                                    IExecIDGenerator execIDGenerator,
                                                    IFixMessageGenerator messageGenerator,
                                                    IMessageSink messageSink)
        {
            var clientApp = ClientApplicationFactory.Create(configFilepath,
                                                            fixStrategy,
                                                            messageGenerator,
                                                            messageSink);

            return new FixServerFacade(clientApp, execIDGenerator, messageGenerator);
        }
示例#4
0
        public static IServerFacade CreateFixServer(string configFilepath,
                                                    IFixStrategy fixStrategy,
                                                    IExecIDGenerator execIDGenerator,
                                                    IFixMessageGenerator messageGenerator,
                                                    IMessageSink messageSink)
        {
            var clientApp = ClientApplicationFactory.Create(configFilepath,
                                                            fixStrategy,
                                                            messageGenerator,
                                                            messageSink);

            return(new FixServerFacade(clientApp, execIDGenerator, messageGenerator));
        }
示例#5
0
        public void Run(
            string configFilepath,
            IFixStrategy strategy,
            IFixMessageGenerator messageGenerator,
            IMessageSink messageSink,
            IExecIDGenerator execIDGenerator,
            IClOrdIDGenerator clOrdIDGenerator)
        {
            _server = ServerFacadeFactory.CreateFixServer(configFilepath,
                                                          strategy,
                                                          execIDGenerator,
                                                          messageGenerator,
                                                          messageSink);

            var atOrderRepository = new ATOrderRepository();
            var atOrderMediator   = new ATOrderMediator(atOrderRepository,
                                                        _server,
                                                        clOrdIDGenerator);

            // Setup the data contexts for the child views in the main view
            // Ideally we'd do this in each view but due to the need to pass _app and the
            // message sink to the view models for expediency purposes we do it here
            var mainWindow = new MainWindow
            {
                ATOrderBook =
                {
                    DataContext = new ATOrderBookViewModel(_server, atOrderMediator)
                },
                OrderBook =
                {
                    DataContext = new OrderBookViewModel(_server, clOrdIDGenerator, messageSink)
                },
                ConnectionView = { DataContext = new ConnectionViewModel(_server, messageSink) }
            };

            // Set the main UI dispatcher
            SmartDispatcher.SetDispatcher(mainWindow.Dispatcher);

            // Send messages to the status bar
            messageSink.SetMessageSink(
                s =>
            {
                var vm = (ConnectionViewModel)mainWindow.ConnectionView.DataContext;
                SmartDispatcher.Invoke(() => vm.StatusMessage = s);
            });

            _server.Start();
            mainWindow.Show();
        }
示例#6
0
        public void Run(
            string configFilepath,
            IFixStrategy strategy,
            IFixMessageGenerator messageGenerator,
            IMessageSink messageSink,
            IExecIDGenerator execIDGenerator,
            IClOrdIDGenerator clOrdIDGenerator)
        {
            _server = ServerFacadeFactory.CreateFixServer(configFilepath,
                                                          strategy,
                                                          execIDGenerator,
                                                          messageGenerator,
                                                          messageSink);

            var atOrderRepository = new ATOrderRepository();
            var atOrderMediator = new ATOrderMediator(atOrderRepository,
                                                      _server,
                                                      clOrdIDGenerator);

            // Setup the data contexts for the child views in the main view
            // Ideally we'd do this in each view but due to the need to pass _app and the
            // message sink to the view models for expediency purposes we do it here
            var mainWindow = new MainWindow
            {
                ATOrderBook =
                {
                    DataContext = new ATOrderBookViewModel(_server, atOrderMediator)
                },
                OrderBook =
                {
                    DataContext = new OrderBookViewModel(_server, clOrdIDGenerator, messageSink)
                },
                ConnectionView = { DataContext = new ConnectionViewModel(_server, messageSink) }
            };

            // Set the main UI dispatcher
            SmartDispatcher.SetDispatcher(mainWindow.Dispatcher);

            // Send messages to the status bar
            messageSink.SetMessageSink(
                s =>
                {
                    var vm = (ConnectionViewModel) mainWindow.ConnectionView.DataContext;
                    SmartDispatcher.Invoke(() => vm.StatusMessage = s);
                });

            _server.Start();
            mainWindow.Show();
        }