public static string llenararbol(string id) { try { Model.UnitOfWork.UnitOfWork uow = new Model.UnitOfWork.UnitOfWork(); var areas = uow.MenuRepository.GetAll(); JavaScriptSerializer jss = new JavaScriptSerializer(); Area ara = new Area(); List <Area> lista = new List <Area>(); foreach (Model.Menu ar in areas) { if (id == "0") { ara = construir(ar); } else { ara = construiract(ar, id); } lista.Add(ara); } var resultado = jss.Serialize(lista); return(resultado); } catch (Exception e) { _Log.Error("[ System ] " + " [ Page ] " + "[ Areas ] [ llenararbol ] [ Fin ]", e); return(string.Empty); } }
public static Area construiract(Model.Menu nueva, string usuarioId) { try { Model.UnitOfWork.UnitOfWork uow = new Model.UnitOfWork.UnitOfWork(); Area area = new Area(); area.id = nueva.MenuId.ToString(); area.text = nueva.NombreMenu; area.parent = nueva.MenuPadreId == null ? "#" : nueva.MenuPadreId.ToString(); int iduser = int.Parse(usuarioId); int idar = int.Parse(area.id); var usuario = uow.MenuUsuarioRepository.GetBy(x => x.IdUsuario == iduser && x.IdMenu == idar); int contar = 0; if (usuario.Count > 0) { int menuid = usuario[0].IdMenu != null?Int32.Parse(usuario[0].IdMenu.ToString()) : 0; var usuario1 = uow.MenuRepository.GetBy(x => x.MenuPadreId == menuid); contar = usuario1.Count; } state st = new state(); if (usuario.Count > 0) { if (area.parent == "#" && contar > 0) { //st.opened = "True"; st.selected = null; } else { st.selected = "True"; } } else { st.selected = null; //st.opened = null; //st.disabled = null; } st.loaded = "True"; st.opened = "True"; area.state = st; return(area); } catch (Exception e) { _Log.Error("[ System ] " + " [ Page ] " + "[ Areas ] [ construiract ] [ Fin ]", e); return(new Area { }); } }