Exemplo n.º 1
0
        public async Task <IActionResult> ReplaceLimitOrder([FromBody] ReplaceLimitOrderRequest request)
        {
            try
            {
                var result = await GetAuthenticatedExchange().AddOrderAndWaitExecution(request.ToLimitOrder(false),
                                                                                       TimeSpan.FromSeconds(DefaultTimeOutSeconds), ToOrderIdOrThrow(request.OrderIdToCancel));

                return(Ok(new OrderIdResponse
                {
                    OrderId = result.ExchangeOrderId.ToString(CultureInfo.InvariantCulture)
                }));
            }
            catch (ApiException e)
            {
                if (e.ErrorCode == ApiErrorCode.OrderNotFound || e.ApiStatusCode == HttpStatusCode.NotFound)
                {
                    return(NotFound(new ErrorModel(e.Message, ApiErrorCode.OrderNotFound)));
                }

                if (e.ApiStatusCode == HttpStatusCode.BadRequest)
                {
                    return(BadRequest(new ErrorModel(e.Message, e.ErrorCode)));
                }

                return(StatusCode((int)HttpStatusCode.InternalServerError, new ErrorModel(e.Message, e.ErrorCode)));
            }
        }
Exemplo n.º 2
0
        public override async Task <OrderIdResponse> ReplaceLimitOrderAsync([FromBody] ReplaceLimitOrderRequest request)
        {
            if (Guid.TryParse(request.OrderIdToCancel, out Guid orderIdToCancel))
            {
                await Api.CancelLimitOrderAsync(orderIdToCancel);
            }

            Guid orderId = await Api.CreateLimitOrderAsync(
                request.Instrument, request.Price, request.Volume, request.TradeType.ToDomainTradeType());

            return(new OrderIdResponse
            {
                OrderId = orderId.ToString()
            });
        }
Exemplo n.º 3
0
 public virtual Task <OrderIdResponse> ReplaceLimitOrderAsync([FromBody] ReplaceLimitOrderRequest request)
 {
     throw new System.NotImplementedException();
 }
Exemplo n.º 4
0
 public Task <OrderIdResponse> ReplaceLimitOrderAsync([FromBody] ReplaceLimitOrderRequest request)
 {
     throw new ValidationApiException(HttpStatusCode.NotImplemented, "Not supported");
 }