Ejemplo n.º 1
0
        private async Task <CacheModel> Load(string clientId)
        {
            var records = await _operationsHistoryReader.GetHistory(clientId);

            if (records.Count > _maxHistoryLengthPerClient)
            {
                await _log.WriteWarningAsync(nameof(HistoryCache), nameof(Load), $"ClientId: {clientId}", $"Records: {records.Count}");

                return(new CacheModel());
            }

            var cacheModel = new CacheModel
            {
                Records = records.OrderByDescending(r => r.DateTime).Take(_saveHistoryLengthPerClient).ToList()
            };

            await _storage.Set(clientId, cacheModel);

            return(cacheModel);
        }
Ejemplo n.º 2
0
 public async Task Set(string clientId, CacheModel cacheModel)
 {
     var value = MessagePackSerializer.Serialize(cacheModel);
     await _redisCache.SetAsync(GetCacheKey(clientId), value);
 }
Ejemplo n.º 3
0
 public async Task Set(string clientId, CacheModel cacheModel)
 {
     _storage.AddOrUpdate(clientId, cacheModel, (key, oldValue) => cacheModel);
 }