public void Update(IBfChildOrder order) { AcceptanceId = order.AcceptanceId; OrderId = order.OrderId; OrderDate = order.OrderDate; ExpireDate = order.ExpireDate; switch (order.State) { case BfOrderState.Active: ChangeState(ExecutedSize == 0m ? BfxOrderState.Ordered : BfxOrderState.PartiallyExecuted); break; case BfOrderState.Completed: ChangeState(BfxOrderState.Executed); break; case BfOrderState.Canceled: ChangeState(BfxOrderState.Canceled); break; case BfOrderState.Expired: ChangeState(BfxOrderState.Expired); break; default: throw new ArgumentException("Unexpected order status"); } Update(order.Executions); }
// Market/Limit get from market public BfxChildOrder(IBfChildOrder order) { Request = default; // Request fields ProductCode = order.ProductCode; OrderType = order.OrderType; Side = order.Side; OrderSize = order.OrderSize; if (OrderType == BfOrderType.Limit) { OrderPrice = order.OrderPrice; } Update(order); LastUpdatedTime = order.OrderDate; }