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); }
public Models.AdminMenu GetAdminMenuById(AdminMenuList adminMenuList, string id) { return(adminMenuList.AdminMenu .FirstOrDefault(x => String.Equals(x.Id, id, StringComparison.OrdinalIgnoreCase))); }