public async Task <List <AssetPairContract> > BatchInsert([FromBody] AssetPairContract[] assetPairs) { foreach (var assetPair in assetPairs) { await ValidatePairInsert(assetPair); _defaultLegalEntitySettings.Set(assetPair); } ValidateUnique(assetPairs); var inserted = await _assetPairsRepository.InsertBatchAsync(assetPairs.Select(x => _convertService.Convert <AssetPairContract, AssetPair>(x)).ToList()); if (inserted == null) { throw new ArgumentException("One of asset pairs already exist", nameof(assetPairs)); } var insertedContracts = inserted.Select(x => _convertService.Convert <IAssetPair, AssetPairContract>(x)).ToList(); await _eventSender.SendSettingsChangedEvent($"{Request.Path}", SettingsChangedSourceType.AssetPair); foreach (var insertedContract in insertedContracts) { await _cqrsMessageSender.SendAssetPairChangedEvent(new AssetPairChangedEvent { OperationId = Guid.NewGuid().ToString("N"), AssetPair = insertedContract, }); } return(insertedContracts); }