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); }
public async Task Set(string clientId, CacheModel cacheModel) { var value = MessagePackSerializer.Serialize(cacheModel); await _redisCache.SetAsync(GetCacheKey(clientId), value); }
public async Task Set(string clientId, CacheModel cacheModel) { _storage.AddOrUpdate(clientId, cacheModel, (key, oldValue) => cacheModel); }