/// <summary>
        /// Argument Constructor
        /// </summary>
        /// <param name="orderExecutionEngineClient">OEE-Client for communication with the OEE-Server</param>
        public OrderExecutionService(OrderExecutionEngineClient orderExecutionEngineClient)
        {
            _asyncClassLogger = new AsyncClassLogger("OrderExecutionService");
            // Set logging level
            _asyncClassLogger.SetLoggingLevel();
            // Set logging path
            _asyncClassLogger.LogDirectory(TradeHubConstants.DirectoryStructure.CLIENT_LOGS_LOCATION);

            InitializeDistuptor(new IEventHandler <RabbitMqRequestMessage>[] { this });

            // save order execution client
            _executionEngineClient = orderExecutionEngineClient;

            // Initialize local map
            _ordersMap = new ConcurrentDictionary <string, Order>();

            // Register Local Event
            _sendMarketOrderRequest += SendMarketOrderRequest;
            _sendLimitOrderRequest  += SendLimitOrderRequest;
            _sendCancelOrderRequest += SendCancelOrderRequest;
            _sendOrderRequests      += SendOrderRequests;

            // Register required OEE-Client Events
            RegisterExecutionEngineClientEvents();
        }
Пример #2
0
        public void TestOrderExecutionLogin()
        {
            var    manualResetEvent      = new ManualResetEvent(false);
            string loginMessage          = null;
            var    executionEngineClient = new OrderExecutionEngineClient();

            executionEngineClient.Start();
            manualResetEvent.WaitOne(5000);
            executionEngineClient.LogoutArrived += delegate(string s)
            {
                loginMessage = s;
            };
            executionEngineClient.SendLoginRequest(new Login()
            {
                OrderExecutionProvider = Common.Core.Constants.OrderExecutionProvider.SimulatedExchange
            });
            manualResetEvent.WaitOne(5000);
            executionEngineClient.SendMarketOrderRequest(new MarketOrder("1", OrderSide.BUY, 10, "123", "USD",
                                                                         new Security {
                Symbol = "AAPL"
            },
                                                                         Common.Core.Constants.OrderExecutionProvider.
                                                                         SimulatedExchange));
            manualResetEvent.WaitOne(5000);
            executionEngineClient.Shutdown();
            System.Console.WriteLine(loginMessage);
            Assert.AreEqual(false, string.IsNullOrEmpty(loginMessage));
        }
Пример #3
0
 public void Setup()
 {
     _marketDataEngineClient = new MarketDataEngineClient();
     _orderExecutionEngine   = new OrderExecutionEngineClient();
     _marketDataEngineClient.Start();
     _orderExecutionEngine.Start();
 }
Пример #4
0
        public void Setup()
        {
            _applicationController = ContextRegistry.GetContext()["ApplicationController"] as ApplicationController;
            if (_applicationController != null)
            {
                _applicationController.StartServer();
            }

            Thread.Sleep(5000);

            _executionEngineClient = new OrderExecutionEngineClient();
        }