public async Task <T> GetObjectSafeAsync <T>(CacheObjectsName name) { var result = default(T); try { var cache = await _cache.GetAsync(name.ToString()); if (cache == null) { _logger.LogInformation($"Cache missed for {name}"); return(default(T)); } var obj = JsonConvert.DeserializeObject <T>(GetString(cache)); return(obj); } catch (Exception exception) { _logger.LogError(GetHashCode(), exception, exception.Message); } return(result); }
public async Task <T> GetOrSaveDataInCacheAsync <T>(CacheObjectsName name, Func <Task <T> > source, DistributedCacheEntryOptions options = null) { var obj = await GetObjectSafeAsync <T>(name); if (obj != null) { return(obj); } var result = await source(); await SaveObjectSafeAsync(name, result, options); return(result); }
public async Task SaveObjectSafeAsync(CacheObjectsName name, object value, DistributedCacheEntryOptions options = null) { try { var obj = JsonConvert.SerializeObject(value); if (options != null) { await _cache.SetAsync(name.ToString(), GetBytes(obj), options); } else { await _cache.SetAsync(name.ToString(), GetBytes(obj)); } } catch (Exception exception) { _logger.LogError(GetHashCode(), exception, exception.Message); } }
public Task SaveObjectSafeAsync(CacheObjectsName name, object value, DistributedCacheEntryOptions options = null) => throw new NotImplementedException();
public Task <T> GetObjectSafeAsync <T>(CacheObjectsName name) => throw new NotImplementedException();
public async Task <T> GetOrSaveDataInCacheAsync <T>(CacheObjectsName name, Func <Task <T> > source, DistributedCacheEntryOptions options = null) { return(await source()); }