예제 #1
0
        public ActionResult EditMenu(int categoryId, int?parentId, int?id)
        {
            if (id > 0)
            {
                var         vMenu = _db.Menus.Find(id);
                FrontMenuIM dto   = _mapper.Map <FrontMenuIM>(vMenu);

                if (!string.IsNullOrEmpty(dto.Url))
                {
                    var pageMeta = _db.PageMetas.FirstOrDefault(d => d.ModelType == (short)ModelType.MENU && d.ObjectId == dto.Url);
                    if (pageMeta != null)
                    {
                        dto.SEOTitle       = pageMeta.Title;
                        dto.Keywords       = pageMeta.Keyword;
                        dto.SEODescription = pageMeta.Description;
                    }
                }
                return(PartialView("_MenuEdit", dto));
            }
            else
            {
                FrontMenuIM newDto = new FrontMenuIM {
                    CategoryId = categoryId,
                    ParentId   = parentId
                };

                return(PartialView("_MenuEdit", newDto));
            }
        }
예제 #2
0
        public async System.Threading.Tasks.Task <JsonResult> CreateMenu(FrontMenuIM vm)
        {
            if (ModelState.IsValid)
            {
                vm.Url = vm.Url.ToLower();
                var vMenu = _mapper.Map <Data.Entity.Identity.Menu>(vm);
                if (vm.ParentId != null)
                {
                    var parentMenu = _menuService.GetById(vMenu.ParentId.Value);
                    vMenu.LayoutLevel = parentMenu.LayoutLevel + 1;
                }
                else
                {
                    vMenu.LayoutLevel = 0;
                }
                //vMenu.CreatedDate = DateTime.Now;
                //vMenu.CreatedBy = Site.CurrentUserName;

                _menuService.Create(vMenu);
                _menuService.ResetSort((vMenu.CategoryId));

                await SetPageMetaAsync(_db, (short)ModelType.ARTICLECATEGORY, vm.Url, vm.Title, vm.SEOTitle, vm.Keywords, vm.SEODescription);


                var menus = _menuService.GetMenusByCategoryId(vMenu.CategoryId);
                AR.Id   = vm.CategoryId;
                AR.Data = RenderPartialViewToString("_MenuList", menus);

                AR.SetSuccess("已成功新增菜单");
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }

            AR.Setfailure("编辑菜单失败");
            return(Json(AR, JsonRequestBehavior.DenyGet));

            //   return RedirectToAction("Index");
        }
예제 #3
0
        public async System.Threading.Tasks.Task <JsonResult> EditMenu(FrontMenuIM vm)
        {
            if (!ModelState.IsValid)
            {
                AR.Setfailure(GetModelErrorMessage());
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }
            vm.Url = vm.Url.ToLower();
            if (vm.Id > 0)
            {
                var orgMenu = await _db.Menus.FindAsync(vm.Id);

                var pageMeta = await _db.PageMetas.FirstOrDefaultAsync(d => d.ModelType == (short)ModelType.MENU && d.ObjectId == orgMenu.Url);

                orgMenu             = _mapper.Map(vm, orgMenu);
                orgMenu.UpdatedDate = DateTime.Now;
                orgMenu.UpdatedBy   = Site.CurrentUserName;

                _db.Entry(orgMenu).State = EntityState.Modified;



                //orgMenu.Title = vMenu.Title;
                //orgMenu.MenuType = vMenu.MenuType;
                //orgMenu.Active = vMenu.Active;
                //orgMenu.Action = vMenu.Action;
                //orgMenu.Area = vMenu.Area;
                //orgMenu.CategoryId = vMenu.CategoryId;
                //orgMenu.Controller = vMenu.Controller;
                //orgMenu.Iconfont = vMenu.Iconfont;
                //orgMenu.ParentId = vMenu.ParentId;
                //orgMenu.Url = string.IsNullOrEmpty(vMenu.Url) ? string.Empty : vMenu.Url.ToLower();



                if (string.IsNullOrEmpty(vm.Url))
                {
                    if (pageMeta != null)
                    {
                        _db.PageMetas.Remove(pageMeta);
                    }
                }
                else
                {
                    await SetPageMetaAsync(_db, (short)ModelType.ARTICLECATEGORY, vm.Url, vm.Title, vm.SEOTitle, vm.Keywords, vm.SEODescription);
                }

                await _db.SaveChangesAsync();

                // _menuService.ResetSort(orgMenu.CategoryId);

                var menus = await _db.Menus.Where(d => d.CategoryId == orgMenu.CategoryId).OrderBy(d => d.Importance).ToListAsync();

                AR.Id   = orgMenu.CategoryId;
                AR.Data = RenderPartialViewToString("_MenuList", menus);

                AR.SetSuccess("已成功保存菜单");
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }
            else
            {
                var vMenu = _mapper.Map <QNZ.Data.Menu>(vm);
                if (vm.ParentId != null)
                {
                    var parentMenu = _menuService.GetById(vMenu.ParentId.Value);
                    vMenu.LayoutLevel = parentMenu.LayoutLevel + 1;
                }
                else
                {
                    vMenu.LayoutLevel = 0;
                }
                vMenu.CreatedDate = DateTime.Now;
                vMenu.CreatedBy   = Site.CurrentUserName;

                _db.Menus.Add(vMenu);
                await _db.SaveChangesAsync();

                //  _menuService.ResetSort((vMenu.CategoryId));
                List <QNZ.Data.Menu> menus = await RestSortMenus(vMenu.CategoryId);


                await SetPageMetaAsync(_db, (short)ModelType.ARTICLECATEGORY, vm.Url, vm.Title, vm.SEOTitle, vm.Keywords, vm.SEODescription);

                //var menus = await _db.Menus.Where(d => d.CategoryId == vMenu.CategoryId).OrderBy(d => d.Importance).ToListAsync();
                //    _menuService.GetMenusByCategoryId(vMenu.CategoryId);
                AR.Id   = vm.CategoryId;
                AR.Data = RenderPartialViewToString("_MenuList", menus.OrderBy(d => d.Importance).ToList());

                AR.SetSuccess("已成功新增菜单");
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }
        }