public async Task <RolesDocument> GetRolesAsync() { if (_roles == null) { _roles = await _session.QueryAsync <RolesDocument>().FirstOrDefault(); if (_roles == null) { _roles = new RolesDocument(); UpdateRoles(); } } return(_roles); }
public Task <RolesDocument> GetRolesAsync() { return(_memoryCache.GetOrCreateAsync(Key, async(entry) => { var roles = await _session.Query <RolesDocument>().FirstOrDefaultAsync(); if (roles == null) { roles = new RolesDocument(); _session.Save(roles); } entry.ExpirationTokens.Add(_signal.GetToken(Key)); return roles; })); }
public async Task <RolesDocument> GetRolesAsync() { return(await _memoryCache.GetOrCreateAsync(Key, async (entry) => { _roles = await _session.QueryAsync <RolesDocument>().FirstOrDefault(); if (_roles == null) { _roles = new RolesDocument(); UpdateRoles(); } entry.ExpirationTokens.Add(_signal.GetToken(Key)); return _roles; })); }
/// <summary> /// Updates the store with the provided roles document and then updates the cache. /// </summary> private Task UpdateRolesAsync(RolesDocument roles) { _updating = true; return(_documentManager.UpdateAsync(roles)); }
public void UpdateRoles(RolesDocument roles) { roles.Serial++; _session.Save(roles); _memoryCache.Set(Key, roles); }
private Task UpdateRolesAsync(RolesDocument roles) { roles.Serial++; _session.Save(roles); return(_scopedDistributedCache.SetAsync(roles)); }
private void UpdateRoles(RolesDocument roles) { roles.Serial++; _session.Save(roles); _signal.DeferredSignalToken(Key); }