Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }