/// <summary>
        ///     Populates the list of orders and requests.
        /// </summary>
        public void PopulateOrders()
        {
            _orders.RemoveAllChildren();
            _requests.RemoveAllChildren();

            foreach (var order in Owner.Orders.Orders)
            {
                var row = new CargoOrderRow();
                row.Order             = order;
                row.Icon.Texture      = Owner.Market.GetProduct(order.ProductId).Icon.Frame0();
                row.ProductName.Text  = $"{Owner.Market.GetProduct(order.ProductId).Name} (x{order.Amount}) by {order.Requester}";
                row.Description.Text  = $"Reasons: {order.Reason}";
                row.Cancel.OnPressed += (args) => { OnOrderCanceled?.Invoke(args); };
                if (order.Approved)
                {
                    row.Approve.Visible = false;
                    row.Cancel.Visible  = false;
                    _orders.AddChild(row);
                }
                else
                {
                    if (Owner.RequestOnly)
                    {
                        row.Approve.Visible = false;
                    }
                    else
                    {
                        row.Approve.OnPressed += (args) => { OnOrderApproved?.Invoke(args); }
                    };
                    _requests.AddChild(row);
                }
            }
        }
Ejemplo n.º 2
0
        public async Task <WebCallResult <HitBtcOrder> > CancelOrderByClientOrderIdAsync(string clientOrderId, CancellationToken ct = default)
        {
            var result = await SendRequestAsync <HitBtcOrder>(GetUrl(FillPathParameter(OrderWithClientOrderIdUrl, clientOrderId)), HttpMethod.Delete, ct, null, true, true);

            if (result.Success)
            {
                OnOrderCanceled?.Invoke(result.Data);
            }
            return(result);
        }
Ejemplo n.º 3
0
        public async Task <WebCallResult <IEnumerable <HitBtcOrder> > > CancelOrdersAsync(string symbol = null, CancellationToken ct = default)
        {
            var result = await SendRequestAsync <IEnumerable <HitBtcOrder> >(GetUrl(OrderUrl), HttpMethod.Delete, ct, symbol == null?null : new Dictionary <string, object> {
                { "symbol", symbol }
            }, true, true);

            if (result.Success && OnOrderCanceled != null)
            {
                foreach (var o in result.Data)
                {
                    OnOrderCanceled.Invoke(o);
                }
            }
            return(result);
        }
Ejemplo n.º 4
0
        public async Task <WebCallResult <List <Order> > > CancelAllOrdersAsync(string symbol = null, BitmexRequestWithFilter requestWithFilter = null, string text = null, CancellationToken ct = default)
        {
            Dictionary <string, object> parameters = GetParameters(requestWithFilter);

            parameters.AddOptionalParameter("symbol", symbol);
            parameters.AddOptionalParameter("text", text);
            var result = await SendRequestAsync <List <Order> >(GetUrl(OrderCancelAllEndpoint), HttpMethod.Delete, ct, parameters, true, false).ConfigureAwait(false);

            if (result.Success && OnOrderCanceled != null)
            {
                foreach (var o in result.Data)
                {
                    OnOrderCanceled.Invoke(o);
                }
            }
            return(result);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Cancel an order
        /// </summary>
        /// <param name="orderId">The id of the order to cancel</param>
        /// <param name="twoFactorPassword">Password or authentication app code if enabled</param>
        /// <param name="ct">Cancellation token</param>
        /// <returns>Cancel result</returns>
        public async Task <WebCallResult <KrakenCancelResult> > CancelOrderAsync(string orderId, string?twoFactorPassword = null, CancellationToken ct = default)
        {
            orderId.ValidateNotNull(nameof(orderId));
            var parameters = new Dictionary <string, object>()
            {
                { "txid", orderId }
            };

            parameters.AddOptionalParameter("otp", twoFactorPassword ?? _otp);
            var result = await Execute <KrakenCancelResult>(GetUri("0/private/CancelOrder"), HttpMethod.Post, ct, parameters, true).ConfigureAwait(false);

            if (result)
            {
                OnOrderCanceled?.Invoke(new KrakenOrder {
                    OrderId = orderId
                });
            }
            return(result);
        }
Ejemplo n.º 6
0
        public async Task <WebCallResult <List <Order> > > CancelOrderAsync(CancelOrderRequest cancelOrderRequest, CancellationToken ct = default)
        {
            var parameters = cancelOrderRequest.AsDictionary();
            var result     = await SendRequestAsync <List <Order> >(GetUrl(OrderEndpoint), HttpMethod.Delete, ct, parameters, true, false, arraySerialization : ArrayParametersSerialization.Array).ConfigureAwait(false);

            if (result)
            {
                foreach (var o in result.Data)
                {
                    if (!string.IsNullOrEmpty(o.Error))
                    {
                        log.Write(LogLevel.Error, $"Order {o.Id} cancelling error: {o.Error}");
                    }
                    else
                    {
                        OnOrderCanceled?.Invoke(o);
                    }
                }
            }

            return(result);
        }
Ejemplo n.º 7
0
 internal void InvokeOrderCanceled(OrderId id)
 {
     OnOrderCanceled?.Invoke(id);
 }