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))); } }
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() }); }
public virtual Task <OrderIdResponse> ReplaceLimitOrderAsync([FromBody] ReplaceLimitOrderRequest request) { throw new System.NotImplementedException(); }
public Task <OrderIdResponse> ReplaceLimitOrderAsync([FromBody] ReplaceLimitOrderRequest request) { throw new ValidationApiException(HttpStatusCode.NotImplemented, "Not supported"); }