public override Task <CashInOutOperationResponse> CashInOut(CashInOutOperation request, ServerCallContext context) { var isWithdrawal = double.Parse(request.Volume) < 0; using var activity = MyTelemetry.StartActivity(isWithdrawal ? "Withdrawal" : "Deposit"); activity?.AddTag("operationId", request.Id) .AddTag("brokerId", request.BrokerId) .AddTag("accountId", request.AccountId) .AddTag("walletId", request.WalletId) .AddTag("assetId", request.AssetId) .AddTag("volume", request.Volume); if (isWithdrawal && request.Fees.Count == 0) { var fees = _assetFeesClient.GetAssetFees(request.BrokerId, request.AssetId, OperationType.Withdrawal); if (fees != null) { request.Fees.Add(FeesConverter.ConvertAssetFee(fees)); } } return(_cashServiceClient.CashInOutAsync(request, cancellationToken: context.CancellationToken) .ResponseAsync); }
private void AddLimitOrderFees(LimitOrder request) { var fees = _spotInstrumentFeesClient.GetSpotInstrumentFees(request.BrokerId, request.AssetPairId); if (fees != null) { request.Fees.Add(FeesConverter.ConvertLimitOrderFee(fees)); } }
private void AddMultiLimitOrderFees(MultiLimitOrder request) { var fees = _spotInstrumentFeesClient.GetSpotInstrumentFees(request.BrokerId, request.AssetPairId); if (fees != null) { foreach (var requestOrder in request.Orders) { requestOrder.Fees.Add(FeesConverter.ConvertLimitOrderFee(fees)); } } }