public FixServerFacade(ClientApplication app, IExecIDGenerator execIDGenerator, IFixMessageGenerator fixMessageGenerator) { _app = app; _execIDGenerator = execIDGenerator; _fixMessageGenerator = fixMessageGenerator; _app.Fix44ExecReportEvent += HandleExecutionReport; _app.LogonEvent += HandleLogon; _app.LogoutEvent += HandleLogout; }
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); }
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)); }
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(); }
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(); }