Пример #1
0
 /// <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();
         }
     }
 }
Пример #2
0
 private void RaiseNewOrder(Order order)
 {
     NewOrder?.Invoke(order);
     NewOrders?.Invoke(new[] { order });
 }
Пример #3
0
 protected virtual void Waiter_NewOrder(Order order)
 {
     NewOrder?.Invoke(this, order);
 }