示例#1
0
        public async Task <IAssetPairSettings> InsertAssetPairSettings(IAssetPairSettings assetPairSettings)
        {
            ValidateSettings(assetPairSettings);
            await _assetPairSettingsRepository.InsertAsync(assetPairSettings);

            InitAssetPairSettings();
            return(_assetPairsCache.GetAssetPairSettings(assetPairSettings.AssetPairId)
                   .RequiredNotNull("AssetPairSettings for " + assetPairSettings.AssetPairId));
        }
示例#2
0
        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);
        }
示例#3
0
        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}");
            }
        }
示例#4
0
 private AssetPairSettingsEntity Convert(IAssetPairSettings accountAssetPair)
 {
     return(_convertService.Convert <IAssetPairSettings, AssetPairSettingsEntity>(accountAssetPair,
                                                                                  o => o.ConfigureMap(MemberList.Source).ForMember(e => e.ETag, e => e.UseValue("*"))));
 }
示例#5
0
 public Task ReplaceAsync(IAssetPairSettings settings)
 {
     return(_tableStorage.ReplaceAsync(Convert(settings)));
 }
示例#6
0
 public Task InsertAsync(IAssetPairSettings settings)
 {
     return(_tableStorage.InsertAsync(Convert(settings)));
 }
示例#7
0
 private AssetPairSettingsContract Convert(IAssetPairSettings settings)
 {
     return(_convertService.Convert <IAssetPairSettings, AssetPairSettingsContract>(settings));
 }