public async Task <IAssetPairSettings> InsertAssetPairSettings(IAssetPairSettings assetPairSettings) { ValidateSettings(assetPairSettings); await _assetPairSettingsRepository.InsertAsync(assetPairSettings); InitAssetPairSettings(); return(_assetPairsCache.GetAssetPairSettings(assetPairSettings.AssetPairId) .RequiredNotNull("AssetPairSettings for " + assetPairSettings.AssetPairId)); }
private decimal CalculatePriceWithMarkups(IAssetPairSettings settings, OrderDirection direction, decimal sourcePrice) { if (settings == null) { return(sourcePrice); } var markup = direction == OrderDirection.Buy ? settings.MultiplierMarkupAsk : settings.MultiplierMarkupBid; markup = markup != 0 ? markup : 1; return(sourcePrice * markup); }
private void ValidateSettings(IAssetPairSettings newValue) { if (_assetPairsCache.TryGetAssetPairById(newValue.AssetPairId) == null) { throw new InvalidOperationException($"AssetPairId {newValue.AssetPairId} does not exist"); } if (_assetPairsCache.TryGetAssetPairById(newValue.BasePairId) == null) { throw new InvalidOperationException($"BasePairId {newValue.BasePairId} does not exist"); } if (_assetPairsCache.GetAssetPairSettings().Any(s => s.AssetPairId != newValue.AssetPairId && s.BasePairId == newValue.BasePairId)) { throw new InvalidOperationException( $"BasePairId {newValue.BasePairId} cannot be added twice in one Legal Entity {newValue.LegalEntity}"); } }
private AssetPairSettingsEntity Convert(IAssetPairSettings accountAssetPair) { return(_convertService.Convert <IAssetPairSettings, AssetPairSettingsEntity>(accountAssetPair, o => o.ConfigureMap(MemberList.Source).ForMember(e => e.ETag, e => e.UseValue("*")))); }
public Task ReplaceAsync(IAssetPairSettings settings) { return(_tableStorage.ReplaceAsync(Convert(settings))); }
public Task InsertAsync(IAssetPairSettings settings) { return(_tableStorage.InsertAsync(Convert(settings))); }
private AssetPairSettingsContract Convert(IAssetPairSettings settings) { return(_convertService.Convert <IAssetPairSettings, AssetPairSettingsContract>(settings)); }