Пример #1
0
        private static void LoadMenuLeft(ActionExecutingContext filterContext)
        {
            string ActionName     = filterContext.RouteData.Values["action"].ToString();
            string ControllerName = filterContext.RouteData.Values["controller"].ToString();
            string AreaName       = filterContext.RouteData.DataTokens["area"] != null ? filterContext.RouteData.DataTokens["area"].ToString() : "";

            int?GroupId = int.Parse(Auth.GetCookie("DGroupId")) as int?;

            DBAdmin db = new DBAdmin();

            tbMenu root = db.tbMenus.Where(p => p.MenuName == "Root").FirstOrDefault();

            List <tbMenuInGroup> ListMenu = new List <tbMenuInGroup>();

            if (root != null)
            {
                List <tbMenu> ListT = db.tbMenus.Where(p => p.IdRoot == root.tbMenuId && p.IsDisable == false && p.IsMenu == true).OrderBy(x => x.Order).ToList();
                if (ListT != null)
                {
                    ListT.ForEach(x => ListMenu.Add(new tbMenuInGroup(x, GroupId.Value)));
                }
            }

            filterContext.Controller.ViewBag.ListMenu = ListMenu;
        }
Пример #2
0
 private void ComplementaPerfilAcessoMenu(int intCodigoPerfilAcesso, tbMenu objMenu, ref List <tbPerfilAcessoMenu> arrPerfilAcessoMenu)
 {
     while (true)
     {
         if (objMenu.men_codigoPai == null)
         {
             return;
         }
         var objMenuMatriz       = _objCtx.tbMenu.AsNoTracking().FirstOrDefault(men => men.men_status && men.men_codigo == objMenu.men_codigoPai);
         var objPerfilAcessoMenu = arrPerfilAcessoMenu.FirstOrDefault(pem => objMenuMatriz != null && pem.men_codigo == objMenuMatriz.men_codigo);
         if (objPerfilAcessoMenu == null)
         {
             if (objMenuMatriz == null)
             {
                 return;
             }
             arrPerfilAcessoMenu.Add(new tbPerfilAcessoMenu {
                 pac_codigo = intCodigoPerfilAcesso, men_codigo = Convert.ToInt32(objMenuMatriz.men_codigo), pam_permiteAlteracao = true, pam_permiteExclusao = true, pam_permiteInclusao = true, pam_permiteVisualizacao = true, pam_toolBar = false, tbMenu = objMenuMatriz
             });
             objMenu = objMenuMatriz;
         }
         else
         {
             objMenu = objPerfilAcessoMenu.tbMenu;
         }
     }
 }
Пример #3
0
        public static string AddMenu(string Menustr)
        {
            string str = string.Empty;

            try
            {
                tbMenu tb    = JsonConvert.DeserializeObject <tbMenu>(Menustr);
                tbMenu newtb = new tbMenu()
                {
                    Code        = tb.Code,
                    CreateTime  = DateTime.Now,
                    LinkAddress = tb.LinkAddress,
                    CreateBy    = tb.CreateBy,
                    Icon        = tb.Icon,
                    Name        = tb.Name,
                    ParentId    = tb.ParentId,
                    Sort        = tb.Sort,
                    UpdateBy    = tb.CreateBy,
                    UpdateTime  = DateTime.Now
                };
                AchieveDBEntities myDbContext = new AchieveDBEntities();
                myDbContext.tbMenu.Add(newtb);
                myDbContext.SaveChanges();
                str = ResponseHelper.ResponseMsg("1", "取数成功", "");
            }
            catch (Exception ex)
            {
                str = ResponseHelper.ResponseMsg("-1", ex.Message, "");
            }

            return(str);
        }
Пример #4
0
        public JsonResult UpdateMenuOneBool(int menuid, bool val, string strtype)
        {
            tbMenu tbMenu = db.tbMenus.Where(x => x.tbMenuId == menuid).FirstOrDefault();

            if (tbMenu == null)
            {
                return(Json(new { result = false, msg = "Menu không còn tồn tại >.<" }));
            }
            else
            {
                switch (strtype)
                {
                case "ctrl":
                    tbMenu.IsController = val;
                    break;

                case "mn":
                    tbMenu.IsMenu = val;
                    break;

                case "dis":
                    tbMenu.IsDisable = val;
                    break;

                default:
                    return(Json(new { result = false, msg = "Lỗi không xác định. Cập nhật dữ liệu thất bại!" }));
                }
                db.SaveChanges();
                return(Json(new { result = val, msg = "Đã update \"" + tbMenu.MenuName + "[" + strtype + "]\"" }));
            }
        }
Пример #5
0
        public static string UpdateMenu(string Menustr)
        {
            string str = string.Empty;

            try
            {
                tbMenu            tb          = JsonConvert.DeserializeObject <tbMenu>(Menustr);
                AchieveDBEntities myDbContext = new AchieveDBEntities();
                tbMenu            data        = myDbContext.tbMenu.Where(p => p.Id == tb.Id).FirstOrDefault();


                data.Code        = tb.Code;
                data.LinkAddress = tb.LinkAddress;

                data.Icon       = tb.Icon;
                data.Name       = tb.Name;
                data.ParentId   = tb.ParentId;
                data.Sort       = tb.Sort;
                data.UpdateBy   = tb.UpdateBy;
                data.UpdateTime = DateTime.Now;



                myDbContext.SaveChanges();
                str = ResponseHelper.ResponseMsg("1", "更新成功", "");
            }
            catch (Exception ex)
            {
                str = ResponseHelper.ResponseMsg("-1", ex.Message, "");
            }

            return(str);
        }
Пример #6
0
        public static string GetMenuById(int Id)
        {
            string str = string.Empty;

            try
            {
                IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
                timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
                tbMenu            temp        = new tbMenu();
                AchieveDBEntities myDbContext = new AchieveDBEntities();
                List <tbMenu>     templist    = myDbContext.tbMenu.Where(p => p.Id == Id).ToList();
                if (templist != null && templist.Count > 0)
                {
                    temp = templist[0];
                    str  = JsonConvert.SerializeObject(temp, Formatting.Indented, timeFormat);
                    str  = ResponseHelper.ResponseMsg("1", "取数成功", str);
                }
                else
                {
                    str = JsonConvert.SerializeObject(temp, Formatting.Indented, timeFormat);
                    str = ResponseHelper.ResponseMsg("-1", "菜单不存在", str);
                }
            }
            catch (Exception ex)
            {
                str = ResponseHelper.ResponseMsg("-1", ex.Message, "");
            }

            return(str);
        }
Пример #7
0
        public void PreparaTelaPrincipal()
        {
            //Construindo o Menu
            List <tbMenu> arrMenuAux = new List <tbMenu>();

            foreach (tbMenu objMenu in FrameworkUtil.objConfigStorage.objPerfilAcesso.tbPerfilAcessoMenu
                     .Where(pam => pam.pam_permiteVisualizacao == true && pam.tbMenu.men_codigoPai == null)
                     .Select(pam => pam.tbMenu).OrderBy(men => men.men_ordem))
            {
                tbMenu objMenuItem = new tbMenu()
                {
                    men_imagem = objMenu.men_imagem, men_cabecalho = objMenu.men_cabecalho, men_nomeControle = objMenu.men_nomeControle
                };
                AgrupaMenuItem(ref objMenuItem, objMenu.men_codigo);
                arrMenuAux.Add(objMenuItem);
            }
            arrMenu = new List <tbMenu>(arrMenuAux);

            //Construindo a ToolBar
            List <tbMenu> arrToolBarAux = new List <tbMenu>();

            foreach (tbMenu objToolBar in FrameworkUtil.objConfigStorage.objPerfilAcesso.tbPerfilAcessoMenu
                     .Where(pam => pam.pam_toolBar == true &&
                            pam.tbMenu.men_nomeControle != null &&
                            pam.pam_permiteVisualizacao == true).Select(per => per.tbMenu))
            {
                arrToolBarAux.Add(new tbMenu()
                {
                    men_imagem = objToolBar.men_imagem, men_cabecalho = objToolBar.men_cabecalho, men_nomeControle = objToolBar.men_nomeControle
                });
            }
            //Adicionaodo o botão para sair
            arrToolBarAux.Add(new tbMenu()
            {
                men_imagem = "../Imagens/Menu/50.png", men_cabecalho = "Sair", men_nomeControle = "SairViewModel"
            });

            arrToolBar = new List <tbMenu>(arrToolBarAux);

            //Construindo a StatusBar
            strFuncionario = FrameworkUtil.objConfigStorage.objFuncionario.fun_nome;
            strVersao      = FrameworkUtil.RetornaVersao();
            strEmpresa     = FrameworkUtil.objConfigStorage.objEmpresa.emp_nomeFantasia;
            strData        = DateTime.Now.ToString("dd/MM/yyyy");

            //Verificando a existencia dos arquivos da logo
            if (FrameworkUtil.objConfigStorage.objEmpresa.emp_logoFormato != null)
            {
                string[] arrCaminhoArquivo = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "logo.*", SearchOption.AllDirectories).ToArray();
                for (int i = 0; i < arrCaminhoArquivo.Length; i++)
                {
                    File.Delete(arrCaminhoArquivo[i]);
                }
                if (FrameworkUtil.objConfigStorage.objEmpresa.emp_logo != null)
                {
                    File.WriteAllBytes(AppDomain.CurrentDomain.BaseDirectory + "logo" + FrameworkUtil.objConfigStorage.objEmpresa.emp_logoFormato, FrameworkUtil.objConfigStorage.objEmpresa.emp_logo);
                }
            }
        }
Пример #8
0
        public ActionResult DeleteConfirmed(int id)
        {
            tbMenu tbMenu = db.tbMenus.Find(id);

            db.tbMenus.Remove(tbMenu);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #9
0
 public ActionResult Edit([Bind(Include = "tbMenuId,MenuName,Controller,Action,Area,QueryString,ClassIcon,Order,IsController,IsMenu,IdRoot,IsDisable")] tbMenu tbMenu)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tbMenu).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.IdRoot = new SelectList(db.tbMenus, "tbMenuId", "MenuName", tbMenu.IdRoot);
     return(View("__Cms/Menus/Edit", tbMenu));
 }
Пример #10
0
        public ActionResult SortMenu()
        {
            tbMenu root = db.tbMenus.Where(p => p.MenuName == "Root").FirstOrDefault();

            List <tbMenu> ListMenu = new List <tbMenu>();

            if (root != null)
            {
                ListMenu = db.tbMenus.Where(p => p.IdRoot == root.tbMenuId && p.IsDisable == false && p.IsMenu == true).OrderBy(x => x.Order).ToList();
            }

            return(View("__Cms/Menus/SortMenu", ListMenu));
        }
Пример #11
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tbMenu tbMenu = db.tbMenus.Find(id);

            if (tbMenu == null)
            {
                return(HttpNotFound());
            }
            return(View("__Cms/Menus/Delete", tbMenu));
        }
Пример #12
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            tbMenu tbMenu = db.tbMenus.Find(id);

            if (tbMenu == null)
            {
                return(HttpNotFound());
            }
            ViewBag.IdRoot = new SelectList(db.tbMenus, "tbMenuId", "MenuName", tbMenu.IdRoot);
            return(View("__Cms/Menus/Edit", tbMenu));
        }
Пример #13
0
        private void DeleleRecursion_tbMenu(DBAdmin db, tbMenu rd)
        {
            List <tbMenu> arrmenu = db.tbMenus.Where(x => x.IdRoot == rd.tbMenuId).ToList();

            if (arrmenu.Count() > 0)
            {
                foreach (var c in arrmenu)
                {
                    this.DeleleRecursion_tbMenu(db, c);
                }
            }

            db.tbMenus.Remove(rd);
            db.SaveChanges();
        }
Пример #14
0
 private void AgrupaMenuItem(ref tbMenu objMenuItem, int intCodigoMenu)
 {
     foreach (tbMenu objMenu in FrameworkUtil.objConfigStorage.objPerfilAcesso.tbPerfilAcessoMenu
              .Where(pam => pam.tbMenu.men_codigoPai == intCodigoMenu)
              .Select(pam => pam.tbMenu).OrderBy(men => men.men_ordem))
     {
         tbMenu objMenuAux = new tbMenu()
         {
             men_imagem = objMenu.men_imagem, men_cabecalho = objMenu.men_cabecalho, men_nomeControle = objMenu.men_nomeControle
         };
         AgrupaMenuItem(ref objMenuAux, objMenu.men_codigo);
         if (objMenuItem.tbMenuFilho == null)
         {
             objMenuItem.tbMenuFilho = new List <tbMenu>();
         }
         objMenuItem.tbMenuFilho.Add(objMenuAux);
     }
 }
Пример #15
0
        private void UpdateRecursion_tbMenu(dataAjaxtSort rd, int idroot)
        {
            tbMenu tbMenu = db.tbMenus.Where(x => x.tbMenuId == rd.id).FirstOrDefault();

            if (tbMenu != null)
            {
                tbMenu.IdRoot = idroot;
                tbMenu.Order  = sortid;
                db.SaveChanges();
                sortid++;

                if (rd.children != null)
                {
                    foreach (dataAjaxtSort c in rd.children)
                    {
                        UpdateRecursion_tbMenu(c, tbMenu.tbMenuId);
                    }
                }
            }
        }
Пример #16
0
        public JsonResult SortMenu(string dataAjax)
        {
            try
            {
                List <dataAjaxtSort> data = new JavaScriptSerializer().Deserialize <List <dataAjaxtSort> >(dataAjax);

                tbMenu root = db.tbMenus.Where(p => p.MenuName == "Root").FirstOrDefault();

                if (root != null)
                {
                    foreach (dataAjaxtSort c in data)
                    {
                        UpdateRecursion_tbMenu(c, root.tbMenuId);
                    }
                }
                return(Json(new { result = true, msg = "Cập nhật dữ liệu Thành Công :) " }));
            }
            catch
            {
                return(Json(new { result = false, msg = "Cập nhật dữ liệu thất bại!" }));
            }
        }
Пример #17
0
        public static void SetParentNode(AchieveDBEntities myDbContext, int MenuId, int roleId, List <int> addlist)
        {
            tbMenu temp = myDbContext.tbMenu.Where(p => p.Id == MenuId).FirstOrDefault();

            if (temp != null)
            {
                int DataCount = myDbContext.tbRoleMenu.Where(p => p.MenuId == MenuId && p.RoleId == roleId).Count <tbRoleMenu>();
                int addCount  = 1;
                if (addlist != null)
                {
                    foreach (int st in addlist)
                    {
                        if (MenuId == st)
                        {
                            addCount = 0;
                            break;
                        }
                    }
                }
                if (DataCount <= 0 && addCount == 1)
                {
                    tbRoleMenu tbnew = new tbRoleMenu()
                    {
                        MenuId = MenuId,
                        RoleId = roleId
                    };
                    myDbContext.tbRoleMenu.Add(tbnew);
                    addlist.Add(MenuId);
                    if (temp.ParentId == null)
                    {
                    }
                    else
                    {
                        SetParentNode(myDbContext, Convert.ToInt32(temp.ParentId), roleId, addlist);
                    }
                }
            }
        }
Пример #18
0
        public ActionResult UpdateMenuOneName(int pk, string value, string name)
        {
            tbMenu tbMenu = db.tbMenus.Where(x => x.tbMenuId == pk).FirstOrDefault();

            if (tbMenu == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, string.Format("Menu không tồn tại")));
            }
            else
            {
                try
                {
                    tbMenu.MenuName = value;
                    db.SaveChanges();
                    return(new HttpStatusCodeResult(HttpStatusCode.OK));
                }
                catch (DbEntityValidationException ex)
                {
                    var error = ex.EntityValidationErrors.First().ValidationErrors.First();
                    //this.ModelState.AddModelError(error.PropertyName, error.ErrorMessage);
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, error.ErrorMessage));
                }
            }
        }
Пример #19
0
        public ActionResult MenuCreate()
        {
            List <tbGroupMenu> arrper = db.tbGroupMenus.ToList();

            foreach (tbGroupMenu item in arrper)
            {
                db.tbGroupMenus.Remove(item);
            }
            db.SaveChanges();

            List <tbMenu> arrmenu = db.tbMenus.Where(p => p.IdRoot == null).ToList();

            foreach (tbMenu item in arrmenu)
            {
                DeleleRecursion_tbMenu(db, item);
            }
            db.SaveChanges();

            tbMenu tbMenuRoot = new tbMenu();

            tbMenuRoot.MenuName     = "Root"; // Cpanel
            tbMenuRoot.IsController = false;
            tbMenuRoot.IsMenu       = false;
            db.tbMenus.Add(tbMenuRoot);
            db.SaveChanges();

            Dictionary <Type, IEnumerable <MethodInfo> > Ctrl = GetMvcActionMethods();

            foreach (KeyValuePair <Type, IEnumerable <MethodInfo> > i in Ctrl)
            {
                string[] arr = i.Key.ToString().Split('.');

                string controller = arr[arr.Length - 1].Replace("Controller", "");
                string area       = arr[1] == "Areas" ? arr[2] : null;

                if (controller == "Error")
                {
                    continue;
                }

                tbMenu tbMenuNew = new tbMenu();
                tbMenuNew.MenuName     = controller; // Cpanel
                tbMenuNew.Controller   = controller;
                tbMenuNew.Area         = area;
                tbMenuNew.ClassIcon    = "fa fa-folder-open";
                tbMenuNew.IsController = true;
                tbMenuNew.IsMenu       = area == null?false:true;
                tbMenuNew.IdRoot       = tbMenuRoot.tbMenuId;
                db.tbMenus.Add(tbMenuNew);
                db.SaveChanges();

                foreach (MethodInfo j in i.Value.ToList())
                {
                    tbMenu checkmenu = db.tbMenus.Where(p => p.Controller == controller && p.Action == j.Name && p.Area == area).FirstOrDefault();
                    if (checkmenu != null)
                    {
                        continue;
                    }
                    tbMenu tbNew = new tbMenu();
                    tbNew.MenuName     = j.Name; // Cpanel-Index
                    tbNew.Controller   = controller;
                    tbNew.Action       = j.Name;
                    tbNew.Area         = area;
                    tbNew.IsController = false;
                    tbNew.IsMenu       = area == null ? false : true;
                    if (j.Name == "Details" || j.Name == "Edit" || j.Name == "Delete" || j.Name == "DeleteConfirmed")
                    {
                        tbNew.IsMenu = false;
                    }
                    tbNew.IdRoot = tbMenuNew.tbMenuId;
                    db.tbMenus.Add(tbNew);
                    db.SaveChanges();
                }
            }

            if (!DConfig.IsCheck)
            {
                DConfig.SetValue("DateCreateMenu", DateTime.Now.ToString());
            }
            else
            {
                DConfig.SetValue("DateModifyMenu", DateTime.Now.ToString());
            }

            return(RedirectToAction("Index", "Menus"));
        }