public AssetFees GetAssetFees(string brokerId, string groupId, string assetId, OperationType operationType) { var entity = _assetFeesReader.Get(AssetFeesNoSqlEntity.GeneratePartitionKey(brokerId, groupId), AssetFeesNoSqlEntity.GenerateRowKey(assetId, operationType)); if (entity == null) { return(new AssetFees { FeeType = FeeType.NoFee }); } var result = entity.AssetFees; if (string.IsNullOrEmpty(result.AccountId) || string.IsNullOrEmpty(result.WalletId)) { var settings = _feesSettingsReader.Get(FeesSettingsNoSqlEntity.GeneratePartitionKey(brokerId), FeesSettingsNoSqlEntity.GenerateRowKey()); if (settings != null) { result.BrokerId = settings.FeesSettings.BrokerId; result.AccountId = settings.FeesSettings.AccountId; result.WalletId = settings.FeesSettings.WalletId; } } return(entity?.AssetFees); }
public SpotInstrumentFees GetSpotInstrumentFees(string brokerId, string spotInstrumentId) { var entity = _spotInstrumentsReader.Get(SpotInstrumentFeesNoSqlEntity.GeneratePartitionKey(brokerId), SpotInstrumentFeesNoSqlEntity.GenerateRowKey(spotInstrumentId)); if (entity == null) { entity = _spotInstrumentsReader.Get(SpotInstrumentFeesNoSqlEntity.GeneratePartitionKey(brokerId), SpotInstrumentFeesNoSqlEntity.GenerateRowKey(SpotInstrumentFeesNoSqlEntity.DEFAULT_FEES)); if (entity == null) { return(new SpotInstrumentFees { FeeType = FeeType.NoFee }); } } var result = entity.SpotInstrumentFees; if (string.IsNullOrEmpty(result.AccountId) || string.IsNullOrEmpty(result.WalletId)) { var settings = _feesSettingsReader.Get(FeesSettingsNoSqlEntity.GeneratePartitionKey(brokerId), FeesSettingsNoSqlEntity.GenerateRowKey()); if (settings != null) { result.BrokerId = settings.FeesSettings.BrokerId; result.AccountId = settings.FeesSettings.AccountId; result.WalletId = settings.FeesSettings.WalletId; } } return(result); }
public async Task RemoveFeesSettings(RemoveFeesSettingsRequest request) { using var action = MyTelemetry.StartActivity("Remove Fees Settings Settings"); request.AddToActivityAsJsonTag("request"); try { _logger.LogInformation("Remove Fees Settings Setting: {jsonText}", JsonConvert.SerializeObject(request)); var entity = await _writer.DeleteAsync(FeesSettingsNoSqlEntity.GeneratePartitionKey(request.BrokerId), FeesSettingsNoSqlEntity.GenerateRowKey()); if (entity != null) { _logger.LogInformation("Removed Fees Settings Settings: {jsonText}", JsonConvert.SerializeObject(entity)); } else { _logger.LogInformation("Unable to remove Fees Settings Setting, do not exist: {jsonText}", JsonConvert.SerializeObject(request)); } } catch (Exception ex) { _logger.LogError(ex, "Cannot remove ExternalMarketSettings: {requestJson}", JsonConvert.SerializeObject(request)); ex.FailActivity(); throw; } }
public async Task UpdateFeesSettings(FeesSettings settings) { using var action = MyTelemetry.StartActivity("Update Fees Settings Settings"); settings.AddToActivityAsJsonTag("settings"); try { _logger.LogInformation("Update Fees Settings Setting: {jsonText}", JsonConvert.SerializeObject(settings)); ValidateSettings(settings); var entity = FeesSettingsNoSqlEntity.Create(settings); var existingItem = await _writer.GetAsync(entity.PartitionKey, entity.RowKey); if (existingItem == null) { throw new Exception("Cannot update Fees Settings Settings. Do not exist"); } await _writer.InsertOrReplaceAsync(entity); _logger.LogInformation("Updated Fees Settings Setting: {jsonText}", JsonConvert.SerializeObject(settings)); } catch (Exception ex) { _logger.LogError(ex, "Cannot update ExternalMarketSettings: {requestJson}", JsonConvert.SerializeObject(settings)); ex.FailActivity(); throw; } }
public FeesSettings GetFeesSettings(string brokerId) { var entity = _reader.Get(FeesSettingsNoSqlEntity.GeneratePartitionKey(brokerId), FeesSettingsNoSqlEntity.GenerateRowKey()); return(entity?.FeesSettings); }