public Task UpdatePairAsync(QuoteMessage quote) { var assetPair = _pairs.AddOrUpdate( key: quote.AssetPair, addValueFactory: assetPairId => Create(quote), updateValueFactory: (assetPairId, pair) => UpdateAssetPairPrice(pair, quote)); return(Task.WhenAll(_myNoSqlWriterWrapper.TryInsertOrReplaceAsync(AssetPairPriceNoSql.Create(assetPair)), _redisService.AddAssetPairPriceAsync(assetPair))); }
public Task InitCacheAsync(AssetPairPrice[] pairsToCache) { var entries = pairsToCache.Select(p => new KeyValuePair <string, AssetPairPrice>(p.AssetPair, p)); _pairs = new ConcurrentDictionary <string, AssetPairPrice>(entries); var tasks = new List <Task>(); foreach (var pair in _pairs.Values) { tasks.Add(_redisService.AddAssetPairPriceAsync(pair)); tasks.Add(_myNoSqlWriterWrapper.TryInsertOrReplaceAsync(AssetPairPriceNoSql.Create(pair))); } return(Task.WhenAll(tasks)); }