Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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;
        }