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);
        }