public void Sell(SellOrder order) { lock (_sellOrders) { if (_sellOrders.ContainsKey(order.ForSale.Name)) { _sellOrders[order.ForSale.Name].Add(order); } else { _sellOrders.Add(order.ForSale.Name, new List <SellOrder> { order }); } order.AddCancelAction(RemoveSell); order.AddExecuteAction(RemoveSell); } }
private void CancelSellOrder(SellOrder order) { Security security; if (!Securities.TryGetValue(order.SecurityName, out security)) { Securities.Add(order.SecurityName, order.ForSale); } else { Securities[order.SecurityName].Merge(order.ForSale); } lock (SellOrders) { SellOrders.Remove(order); } Updated?.Invoke(this, this); }
private void RemoveSell(SellOrder order) { _sellOrdersToBeRemoved.Add(order); }