Example #1
0
        /// <summary>
        /// Cancels order.
        /// </summary>
        /// <param name="order">The order to cancel.</param>
        /// <returns>boolean indicating success.</returns>
        public bool CancelOrder(OrderUpdate order)
        {
            _logger.LogDebug($"Cancelling order {order.OrderId}");
            Guard.Argument(order).NotNull(nameof(order));
            var query = HelperMethods.RetryMethod(
                () => Implementation.CancelOrder(order.Pair, order.OrderId),
                _logger);

            if (!query.Success)
            {
                return(false);
            }

            try
            {
                var confirmation = WaitForOrderStatus(order.OrderId, OrderUpdate.OrderStatus.Cancelled);
                _openOrders.Remove(confirmation.OrderId);

                if (Program.CommandLineArgs.Trading)
                {
                    _logger.LogInformation($"Cancelled Order: {JsonConvert.SerializeObject(confirmation)}");
                }
            }
            catch
            {
                return(false);
            }

            return(query.Success);
        }