public IStopLimitOrder NewStopLimitOrder(string symbol, int clientId, double triggerPrice, double limitPrice, int quantity, WayEnum way) { if (!ClientStopLimitOrders.ContainsKey(clientId)) ClientStopLimitOrders.Add(clientId, new EditableList<IStopLimitOrder>()); var trigger = new BestPriceTrigger(symbol, triggerPrice, way); var toReturn = new StopLimitOrder(symbol, quantity, limitPrice, triggerPrice, way, clientId, trigger ); toReturn.SetExchangeOrderId(globalItemCounter); StopLimitOrders.Add(globalItemCounter, toReturn); ClientStopLimitOrders[clientId].Add(toReturn); toReturn.RegisterOrderRepositoryDeleteHandler(HandleDeletedStopLimitOrder); globalItemCounter++; return toReturn; }