/// <summary> /// Notifies the instance that an order was placed. /// </summary> /// <param name="order">The order that was placed.</param> internal void NotifyOrderPlaced(Order order) { // Only track if there really was an order generated if (order != null) { // Keep track of overall orders placed StatOverallOrdersPlaced++; // Keep track of overall item count StatOverallItemsOrdered += order.Positions.Sum(p => p.Value); // Generate requests for the order ResourceManager.CreateExtractRequests(order); // --> Raise event NewOrder?.Invoke(order); // Mark every new order in the history with a timestamp _statOrderPlacementTimestamps.Add(new OrderPlacedDatapoint(this.Controller == null ? 0 : StatTime)); // Flush data points in case there are too many already if (_statOrderPlacementTimestamps.Count > STAT_MAX_DATA_POINTS) { StatFlushOrdersPlaced(); } } }
private void RaiseNewOrder(Order order) { NewOrder?.Invoke(order); NewOrders?.Invoke(new[] { order }); }
protected virtual void Waiter_NewOrder(Order order) { NewOrder?.Invoke(this, order); }