public async Task <AssetPairContract> Update(string assetPairId,
                                                     [FromBody] AssetPairUpdateRequest assetPairUpdateRequest)
        {
            await ValidatePairUpdate(assetPairUpdateRequest);

            ValidateId(assetPairId, assetPairUpdateRequest.Id);

            if (assetPairUpdateRequest.IsFrozen == false)
            {
                assetPairUpdateRequest.FreezeInfo = new FreezeInfoContract();
            }

            var updated = await _assetPairsRepository.UpdateAsync(assetPairUpdateRequest);

            if (updated == null)
            {
                throw new ArgumentException("Update failed", nameof(assetPairUpdateRequest));
            }

            var updatedContract = _convertService.Convert <IAssetPair, AssetPairContract>(updated);

            await _eventSender.SendSettingsChangedEvent($"{Request.Path}", SettingsChangedSourceType.AssetPair,
                                                        updated.Id);

            await _cqrsMessageSender.SendAssetPairChangedEvent(new AssetPairChangedEvent
            {
                OperationId = Guid.NewGuid().ToString("N"),
                AssetPair   = updatedContract,
            });

            return(updatedContract);
        }