public MessageViewModel(QFApp app)
        {
            _qfapp = app;
            Messages = new ObservableCollection<MessageRecord>();

            _qfapp.MessageEvent += new Action<QuickFix.Message,bool>(HandleMessage);
        }
        public ExecutionViewModel(QFApp app)
        {
            _qfapp = app;
            Executions = new ObservableCollection<ExecutionRecord>();

            _qfapp.Fix42ExecReportEvent += new Action<QuickFix.FIX42.ExecutionReport>(HandleExecutionReport);
        }
        public NewsSenderViewModel(QFApp app)
        {
            _qfapp = app;

            // command definitions
            SendNewsCommand = new RelayCommand(SendNews);
        }
Exemple #4
0
        public void Application_Startup(
            object sender,
            StartupEventArgs e,
            ICustomFixStrategy strategy)
        {
            Trace.WriteLine("Application started.");

            // FIX app settings and related
            QuickFix.SessionSettings settings = new QuickFix.SessionSettings(this.ConfigFile);
            strategy.SessionSettings = settings;

            // FIX application setup
            QuickFix.MessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings);
            QuickFix.LogFactory logFactory = new QuickFix.FileLogFactory(settings);
            _qfapp = new QFApp(settings, strategy);

            QuickFix.IInitiator initiator = new QuickFix.Transport.SocketInitiator(_qfapp, storeFactory, settings, logFactory);
            _qfapp.Initiator = initiator;


            // Window creation and context assignment
            UIDemo.MainWindow mainWindow = new UIDemo.MainWindow();
            mainWindow.DataContext = new MainWindowViewModel();

            mainWindow.MessageView.DataContext = new MessageViewModel(_qfapp);
            mainWindow.ExecutionView.DataContext = new ExecutionViewModel(_qfapp);
            mainWindow.ConnectionView.DataContext = new ConnectionViewModel(_qfapp);
            mainWindow.OrderView.DataContext = new OrderViewModel(_qfapp, strategy);
            mainWindow.NewsSenderView.DataContext = new NewsSenderViewModel(_qfapp);

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

            mainWindow.Show();
        }
        public TradeViewModel(QFApp app)
        {
            _qfapp = app;
            Trades = new ObservableCollection<TradeRecord>();

            //_qfapp.MessageEvent += new Action<QuickFix.Message, bool>(HandleMessage);
            _qfapp.Fix44QuoteRequestEvent += new Action<QuickFix.FIX44.QuoteRequest>(HandleQuoteRequest);
        }
        public ConnectionViewModel(QFApp app)
        {
            _qfapp = app;

            // initialize SessionString
            HashSet<QuickFix.SessionID> sidset = _qfapp.MySessionSettings.GetSessions();
            Trace.WriteLine("Sessions count in config: " + sidset.Count);
            foreach (QuickFix.SessionID sid in sidset)
                Trace.WriteLine("-> " + sid.ToString());
            this.SessionString = sidset.First().ToString();

            // command definitions
            ConnectCommand = new RelayCommand(Connect);
            DisconnectCommand = new RelayCommand(Disconnect);

            _qfapp.LogonEvent += new Action(delegate () { IsConnected = true; });
            _qfapp.LogoutEvent += new Action(delegate () { IsConnected = false; });
        }
        public OrderViewModel(QFApp app, ICustomFixStrategy strategy)
        {
            _qfapp = app;
            _strategy = strategy;
            Orders = new ObservableCollection<OrderRecord>();
            CustomFields = new ObservableCollection<CustomFieldRecord>();

            // command definitions
            SendBuyCommand = new RelayCommand(SendBuy);
            SendSellCommand = new RelayCommand(SendSell);
            AddCustomFieldCommand = new RelayCommand(AddCustomField);
            ClearCustomFieldsCommand = new RelayCommand(ClearCustomFields);

            _qfapp.Fix42ExecReportEvent += new Action<QuickFix.FIX42.ExecutionReport>(HandleExecutionReport);

            // load pre-set custom fields from strategy, if it has any
            foreach (KeyValuePair<int, string> p in strategy.DefaultNewOrderSingleCustomFields)
                CustomFields.Add(new CustomFieldRecord(p.Key, p.Value));
        }
        public UnitTestContext()
        {
            QuickFix.Dictionary config = CreateConfig();
            QuickFix.SessionID sessionID = new QuickFix.SessionID("FIX.4.2", "SENDER", "TARGET");
            QuickFix.SessionSettings settings = new QuickFix.SessionSettings();
            settings.Set(sessionID, config);

            App = new QFApp(settings);
            Initiator = new MockInitiator();
            App.Initiator = Initiator;

            Session = new SessionThatTracksOutbound(
                App,
                new QuickFix.MemoryStoreFactory(),
                sessionID,
                new QuickFix.DataDictionaryProvider(),
                new QuickFix.SessionSchedule(config),
                0,
                new QuickFix.ScreenLogFactory(settings),
                new QuickFix.DefaultMessageFactory(),
                "blah");
            Session.MaxLatency = 120;
        }