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