public async Task <List <AssetPairContract> > BatchUpdate( [FromBody] AssetPairUpdateRequest[] assetPairsUpdateRequest) { foreach (var assetPairUpdateRequest in assetPairsUpdateRequest) { await ValidatePairUpdate(assetPairUpdateRequest); if (assetPairUpdateRequest.IsFrozen == false) { assetPairUpdateRequest.FreezeInfo = new FreezeInfoContract(); } } await ValidateUnique(assetPairsUpdateRequest); var updated = await _assetPairsRepository.UpdateBatchAsync(assetPairsUpdateRequest.ToList()); if (updated == null) { throw new ArgumentException("Batch update failed", nameof(assetPairsUpdateRequest)); } var updatedContracts = updated.Select(x => _convertService.Convert <IAssetPair, AssetPairContract>(x)).ToList(); await _eventSender.SendSettingsChangedEvent($"{Request.Path}", SettingsChangedSourceType.AssetPair); foreach (var updatedContract in updatedContracts) { await _cqrsMessageSender.SendAssetPairChangedEvent(new AssetPairChangedEvent { OperationId = Guid.NewGuid().ToString("N"), AssetPair = updatedContract, }); } return(updatedContracts); }