Пример #1
0
        public async Task <RolesDocument> GetRolesAsync()
        {
            if (_roles == null)
            {
                _roles = await _session.QueryAsync <RolesDocument>().FirstOrDefault();

                if (_roles == null)
                {
                    _roles = new RolesDocument();
                    UpdateRoles();
                }
            }

            return(_roles);
        }
Пример #2
0
        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;
            }));
        }
Пример #3
0
        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;
            }));
        }
Пример #4
0
        /// <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));
        }
Пример #5
0
 public void UpdateRoles(RolesDocument roles)
 {
     roles.Serial++;
     _session.Save(roles);
     _memoryCache.Set(Key, roles);
 }
Пример #6
0
 private Task UpdateRolesAsync(RolesDocument roles)
 {
     roles.Serial++;
     _session.Save(roles);
     return(_scopedDistributedCache.SetAsync(roles));
 }
Пример #7
0
 private void UpdateRoles(RolesDocument roles)
 {
     roles.Serial++;
     _session.Save(roles);
     _signal.DeferredSignalToken(Key);
 }