public async Task <CreateMarketOrderResponse> CreateAsync(string brokerId, MarketOrderCreateModel model) { var wallet = await _accountsClient.Wallet.GetAsync((long)model.WalletId, brokerId); if (wallet == null) { throw new ArgumentException($"Wallet '{model.WalletId}' does not exist."); } if (!wallet.IsEnabled) { throw new ArgumentException($"Wallet '{model.WalletId}' is disabled."); } var request = new MarketOrder { Id = model.Id.HasValue ? model.Id.Value.ToString() : Guid.NewGuid().ToString(), BrokerId = brokerId, AccountId = model.AccountId, WalletId = model.WalletId, AssetPairId = model.AssetPair, Volume = model.Volume.ToString(CultureInfo.InvariantCulture), Timestamp = Timestamp.FromDateTime(DateTime.UtcNow) }; var fee = await GetFee(brokerId, model.AssetPair); request.Fees.Add(fee); var response = await _matchingEngineClient.Trading.CreateMarketOrderAsync(request); var result = new CreateMarketOrderResponse(response); return(result); }
public async Task <IActionResult> CreateAsync([FromBody] MarketOrderCreateModel model) { var result = await _marketOrderOperations.CreateAsync(User.GetTenantId(), model); return(Ok(result)); }