private async Task <AdminMenuList> GetAdminMenuList()
        {
            AdminMenuList treeList;

            if (!_memoryCache.TryGetValue(AdminMenuCacheKey, out treeList))
            {
                var session = GetSession();

                treeList = await session.Query <AdminMenuList>().FirstOrDefaultAsync();

                if (treeList == null)
                {
                    lock (_memoryCache)
                    {
                        if (!_memoryCache.TryGetValue(AdminMenuCacheKey, out treeList))
                        {
                            treeList = new AdminMenuList();
                            session.Save(treeList);
                            _memoryCache.Set(AdminMenuCacheKey, treeList);
                            _signal.SignalToken(AdminMenuCacheKey);
                        }
                    }
                }
                else
                {
                    _memoryCache.Set(AdminMenuCacheKey, treeList);
                    _signal.SignalToken(AdminMenuCacheKey);
                }
            }

            return(treeList);
        }
Exemple #2
0
 public Models.AdminMenu GetAdminMenuById(AdminMenuList adminMenuList, string id)
 {
     return(adminMenuList.AdminMenu
            .FirstOrDefault(x => String.Equals(x.Id, id, StringComparison.OrdinalIgnoreCase)));
 }