/// <summary> /// Checks the given FIX session is the order owner before deleting an order /// </summary> /// <param name="orderID">The order to delete</param> /// <param name="sessionID">The ID of the FIX session</param> /// <returns>The order which has been cancelled</returns> /// <exception cref="FixATServerException">If the FIX session does not own the order</exception> public IOrder CancelOrder(long orderID, FixSessionID sessionID) { var owner = _orderOwners[orderID]; if (!owner.Equals(sessionID)) { var e = new FixATServerException( string.Format("Unable to cancel order {0}, permission denied", orderID)); e.Data[RejectReasonExceptionString] = OrderCancelRejectReason.PermissionDenied; throw e; } var deletedOrder = DeleteOrder(orderID); if (deletedOrder == null) { var e = new FixATServerException( string.Format("Unable to cancel order {0}, order not found", orderID)); e.Data[RejectReasonExceptionString] = OrderCancelRejectReason.OrderNotFound; throw e; } return(deletedOrder); }
/// <summary> /// Checks the given FIX session is the order owner before deleting an order /// </summary> /// <param name="orderID">The order to delete</param> /// <param name="sessionID">The ID of the FIX session</param> /// <returns>The order which has been cancelled</returns> /// <exception cref="FixATServerException">If the FIX session does not own the order</exception> public IOrder CancelOrder(long orderID, FixSessionID sessionID) { var owner = _orderOwners[orderID]; if (!owner.Equals(sessionID)) { var e = new FixATServerException( string.Format("Unable to cancel order {0}, permission denied", orderID)); e.Data[RejectReasonExceptionString] = OrderCancelRejectReason.PermissionDenied; throw e; } var deletedOrder = DeleteOrder(orderID); if (deletedOrder == null) { var e = new FixATServerException( string.Format("Unable to cancel order {0}, order not found", orderID)); e.Data[RejectReasonExceptionString] = OrderCancelRejectReason.OrderNotFound; throw e; } return deletedOrder; }