public async Task CreateAsync(string indexName, decimal amount, string comment, string walletId, string clientId, string userId, bool isDirect) { IndexPrice indexPrice = await _indexPriceService.GetByIndexAsync(indexName); if (indexPrice == null) { throw new InvalidOperationException("Index price not found"); } Settlement settlement = await CreateSettlementAsync(indexName, amount, comment, walletId, clientId, userId, isDirect, indexPrice); await ValidateBalanceAsync(settlement); await _settlementRepository.InsertAsync(settlement); _log.InfoWithDetails("Settlement created", settlement); }