public async Task <IViewComponentResult> InvokeAsync(int categoryId, ViewContext viewContext) { //if (!User.IsInRole("系统管理员")) //{ // if (User.IsInRole("店员")) // { // var cacheKey1 = $"AllMenus_6_{categoryId}"; // // Look for cache key. // if (!_cache.TryGetValue(cacheKey1, out List<QNZ.Data.Menu> menus1)) // { // // 6是店员角色ID // menus1 = await _context.Menus.AsNoTracking().Where(d => d.CategoryId == categoryId && d.RoleMenus.Any(r => r.RoleId == 6)).ToListAsync(); // // Set cache options. // var cacheEntryOptions = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromDays(1)); // // Save data in cache. // _cache.Set(cacheKey1, menus1, cacheEntryOptions); // } // LeftNavVM vm1 = new LeftNavVM // { // Menus = menus1, //_menuServices.GetLeftMenus(categoryId),//_menuServices.GetShowMenus(categoryId), // CurrentMenu = GetCurrenMenu(categoryId, viewContext, menus1) // }; // return View(vm1); // } //} LeftNavVM vm = new LeftNavVM(); var cacheKey = $"MENUS_CATEGORY_{categoryId}"; if (_cache.IsSet(cacheKey)) { var menus = (List <QNZ.Data.Menu>)_cache.Get(cacheKey); vm.Menus = menus; vm.CurrentMenu = GetCurrenMenu(categoryId, viewContext, menus); } else { var menus = await _context.Menus.AsNoTracking().Where(d => d.CategoryId == categoryId).ToListAsync(); _cache.Set(cacheKey, menus, SettingsManager.Site.CacheDuration); vm.Menus = menus; vm.CurrentMenu = GetCurrenMenu(categoryId, viewContext, menus); } // Look for cache key. //if (!_cache.TryGetValue(cacheKey, out List<QNZ.Data.Menu> menus)) //{ // // Key not in cache, so get data. // menus = await _context.Menus.AsNoTracking().Where(d => d.CategoryId == categoryId).ToListAsync(); // // Set cache options. // var cacheEntryOptions = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromDays(1)); // // Save data in cache. // _cache.Set(cacheKey, menus, cacheEntryOptions); //} return(View(vm)); }
public IViewComponentResult Invoke(int categoryId, ViewContext viewContext) { LeftNavVM vm = new LeftNavVM { Menus = _menuServices.GetLeftMenus(categoryId),//_menuServices.GetShowMenus(categoryId), CurrentMenu = _menuServices.GetCurrenMenu(viewContext) }; return(View(vm)); }
public ActionResult LeftNavs(int categoryId) { var allmenus = GetAllMenusByCategoryId(categoryId); LeftNavVM vm = new LeftNavVM { Menus = allmenus.Where(d => d.MenuType == MenuType.NOLINK || d.MenuType == MenuType.PAGE).OrderBy(d => d.Importance).ToList(), CurrentMenu = GetCurrenMenu() }; return(PartialView("_LeftNav", vm)); }