public async Task AddOrUpdateSettings(ISimBaseInstrumentSetting setting) { if (_cache.TryGetValue(setting.BaseAssetPair, out var entity)) { entity.CopyFrom(setting); await _tableStorage.ReplaceAsync(entity); } else { entity = new SimBaseInstrumentSettingEntity(setting); await _tableStorage.InsertOrReplaceAsync(entity); _cache[entity.BaseAssetPair] = entity; } }
public SimBaseInstrumentService( IOrderBookProvider orderBookProvider, ITickPriceProvider tickPriceProvider, ITickPriceStore tickPriceStore, ISimBaseInstrumentSetting setting, IExchangeCommissionSettingRepository commissionSettingRepository, ILogFactory logFactory) { _orderBookProvider = orderBookProvider; _tickPriceProvider = tickPriceProvider; _tickPriceStore = tickPriceStore; _setting = setting; _commissionSettingRepository = commissionSettingRepository; _log = logFactory.CreateLog(this); }
public SimBaseInstrumentSetting(ISimBaseInstrumentSetting setting) { BaseAssetPair = setting.BaseAssetPair; CountPerSecond = setting.CountPerSecond; PriceAccuracy = setting.PriceAccuracy; FakeVolume = setting.FakeVolume; DangerChangePriceKoef = setting.DangerChangePriceKoef; SourceExchange = setting.SourceExchange.ToList(); CrossInstrument = setting.CrossInstrument.Select(e => new LinkedInstrumentSettings(e)).ToList(); Order = setting.Order; UseExternalSpread = setting.UseExternalSpread; Alias = setting.Alias; PriceCoef = setting.PriceCoef; UseHardGlobalSpread = setting.UseHardGlobalSpread; UseFixPrice = setting.UseFixPrice; FixPrice = setting.FixPrice; }
public void CopyFrom(ISimBaseInstrumentSetting setting) { _sourceExchange = setting.SourceExchange; CountPerSecond = setting.CountPerSecond; PriceAccuracy = setting.PriceAccuracy; FakeVolume = setting.FakeVolume; _crossInstrument = setting.CrossInstrument; DangerChangePriceKoef = setting.DangerChangePriceKoef; Order = setting.Order; UseExternalSpread = setting.UseExternalSpread; ETag = "*"; PriceCoef = setting.PriceCoef; Alias = setting.Alias; UseHardGlobalSpread = setting.UseHardGlobalSpread; UseFixPrice = setting.UseFixPrice; FixPrice = setting.FixPrice; }
public SimBaseInstrumentSettingEntity(ISimBaseInstrumentSetting setting) { PartitionKey = GeneratePartitionKey(setting.BaseAssetPair); RowKey = GenerateRowKey(setting.BaseAssetPair); BaseAssetPair = setting.BaseAssetPair; _sourceExchange = setting.SourceExchange; CountPerSecond = setting.CountPerSecond; PriceAccuracy = setting.PriceAccuracy; FakeVolume = setting.FakeVolume; _crossInstrument = setting.CrossInstrument; DangerChangePriceKoef = setting.DangerChangePriceKoef; Order = setting.Order; UseExternalSpread = setting.UseExternalSpread; ETag = "*"; PriceCoef = setting.PriceCoef; Alias = setting.Alias; UseHardGlobalSpread = setting.UseHardGlobalSpread; UseFixPrice = setting.UseFixPrice; FixPrice = setting.FixPrice; }