public void PopulateTreeModulosEmpty() { ModuloRepository moduloRepository = new ModuloRepository(); StringBuilder sb = new StringBuilder(); var listModulosSistema = moduloRepository.GetAll(p => p.Parent).OrderBy(o => o.Descripcion); var menuVM = MenuViewModel.CreateVM(null, listModulosSistema.ToList()); foreach (var menuItem in menuVM) { sb.Append("<li>"); sb.Append("<p >"); sb.Append(" <span class='icon'><i class='" + menuItem.Class + "'></i></span>"); sb.Append(" <label class='control-label'>" + menuItem.Descripcion + "</label>"); sb.Append("</p>"); if (menuItem.URL != string.Empty && menuItem.URL != null) { var checked_edit = ""; var checked_view = ""; if (menuItem.MenuId == 28 || menuItem.MenuId == 50) { checked_edit = "checked"; checked_view = "checked"; } sb.Append("<div style='float:right; margin-right:150px'><input " + checked_edit + " name='chk_EDIT_" + menuItem.MenuId + "' type='checkbox' ></input></div>"); sb.Append("<div style='float:right; margin-right:180px'><input " + checked_view + " name='chk_VIEW_" + menuItem.MenuId + "' type='checkbox' ></input></div>"); } if (menuItem.Children.Count() > 0) { sb.Append("<ul class='sub'>"); } #region Sub Menu 1° Nivel foreach (var child in menuItem.Children) { sb.Append("<li>"); if (child.URL != string.Empty && child.URL != null) { sb.Append("<p>"); } else { sb.Append("<p >"); } sb.Append("<span class='icon'><i class='" + (child.Class != null && child.Class != string.Empty ? child.Class : "") + "'></i></span>"); sb.Append(" <label class='control-label'>" + child.Descripcion + "</label>"); if (child.URL != string.Empty && child.URL != null) { sb.Append("<div style='float:right; margin-right:150px'><input name='chk_EDIT_" + child.MenuId + "' type='checkbox' ></input></div>"); sb.Append("<div style='float:right; margin-right:180px'><input name='chk_VIEW_" + child.MenuId + "' type='checkbox' ></input></div>"); } sb.Append("</p>"); if (child.Children.Count() > 0) { sb.Append("<ul class='sub'>"); } #region Sub Menu 2° Nivel foreach (var subchild in child.Children) { sb.Append("<li>"); if (subchild.URL != string.Empty && subchild.URL != null) { sb.Append("<span >"); } else { sb.Append("<span >"); } sb.Append("<span class='icon'><i class='" + (subchild.Class != null && subchild.Class != string.Empty ? subchild.Class : "") + "'></i></span>"); sb.Append(" <label class='control-label'>" + subchild.Descripcion + "</label>"); if (subchild.URL != string.Empty && subchild.URL != null) { sb.Append("<div style='float:right; margin-right:150px'><input name='chk_EDIT_" + subchild.MenuId + "' type='checkbox' ></input></div>"); sb.Append("<div style='float:right; margin-right:180px'><input name='chk_VIEW_" + subchild.MenuId + "' type='checkbox' ></input></div>"); } sb.Append("</span>"); if (subchild.Children.Count() > 0) { sb.Append("<ul class='sub'>"); } #region Sub Menu 3° Nivel foreach (var subsubchild in subchild.Children) { sb.Append("<li>"); if (subsubchild.URL != string.Empty && subsubchild.URL != null) { sb.Append("<span >"); } else { sb.Append("<span >"); } sb.Append("<span class='icon'><i class='" + (subsubchild.Class != null && subsubchild.Class != string.Empty ? subsubchild.Class : "") + "'></i></span>"); sb.Append(" <label class='control-label'>" + subsubchild.Descripcion + "</label>"); if (subsubchild.URL != string.Empty && subsubchild.URL != null) { sb.Append("<div style='float:right; margin-right:150px'><input name='chk_EDIT_" + subsubchild.MenuId + "' type='checkbox' ></input></div>"); sb.Append("<div style='float:right; margin-right:180px'><input name='chk_VIEW_" + subsubchild.MenuId + "' type='checkbox' ></input></div>"); } sb.Append("</span>"); sb.Append("</li>"); } #endregion if (subchild.Children.Count() > 0) { sb.Append("</ul>"); } sb.Append("</li>"); } #endregion if (child.Children.Count() > 0) { sb.Append("</ul>"); } sb.Append("</li>"); } #endregion if (menuItem.Children.Count() > 0) { sb.Append("</ul>"); } sb.Append("</li>"); } ViewBag.Modulos = sb.ToString(); }
public static IHtmlString DrawMenuItems(this HtmlHelper html) { StringBuilder sb = new StringBuilder(); var currenUser = AuthenticationFactory.CreateAuthentication().GetUser(); var currenModulo = GetBaseController(html).GetCurrenModulo(); currenUser.RolesEmpresa = AppSession.RolesEmpresa; // currenUser.UsuarioRolClientes = AppSession.RolesCliente; //var listModulosSistema = moduloRepository.GetFiltered(o=>o.Visible, p=>p.Parent).OrderBy(o=>o.Descripcion); var listModulosSistema = moduloRepository.GetModulosUser(currenUser.RolesEmpresa, AppSession.Modulos); var menuVM = MenuViewModel.CreateVM(null, listModulosSistema.ToList()); // var listModulosPermiso = usuarioRepository.GetRolesEmpresaByUsuarioId(currenUser.UserID).Select(o=>o.Rol.ModulosPermiso); //foreach (var ob in listModulosPermiso) //{ // foreach (var modulo in ob.GroupBy(o => o.Modulo_Id).Select(group => group.First())) // { // // menuVM.Where(o => o.Children.se == modulo.Modulo_Id).Any(); // } //} string classExpand = "class='hasSub current'"; string classAExpand = "class='expand rotateOut'"; string classSubExpandShow = "class='sub expand show'"; string classCurrent = "class='current'"; foreach (var menuItem in menuVM) { if (IsInCurrentModulo(currenModulo, menuItem.MenuId)) { sb.Append("<li " + classExpand + ">"); sb.Append("<a href='#' " + classAExpand + ">"); } else { sb.Append("<li >"); sb.Append("<a href='#'>"); } sb.Append(" <span class='icon'><i class='" + menuItem.Class + "'></i></span>"); sb.Append(" <span class='txt'>" + menuItem.Descripcion + "</span>"); sb.Append("</a>"); if (menuItem.Children.Count() > 0) { if (IsInCurrentModulo(currenModulo, menuItem.MenuId)) { sb.Append("<ul " + classSubExpandShow + " >"); } else { sb.Append("<ul class='sub'>"); } #region Sub Menu 1° Nivel foreach (var child in menuItem.Children) { if (currenModulo.Id == menuItem.MenuId) { sb.Append("<li " + classCurrent + " >"); } else { sb.Append("<li>"); } if (child.URL != string.Empty && child.URL != null) { if (child.URL.ToUpper().StartsWith("HTTP")) { if (IsInCurrentModulo(currenModulo, child.MenuId)) { sb.Append("<a href='" + child.URL + "' " + classExpand + " >"); } else { sb.Append("<a href='" + child.URL + "'>"); } } else { if (IsInCurrentModulo(currenModulo, child.MenuId)) { sb.Append("<a href='/" + child.URL + "' " + classExpand + " >"); } else { sb.Append("<a href='/" + child.URL + "'>"); } } } else if (IsInCurrentModulo(currenModulo, child.MenuId)) { sb.Append("<a href='#'>"); } else { sb.Append("<a href='#' " + classExpand + " >"); } sb.Append("<span class='icon'><i class='" + (child.Class != null && child.Class != string.Empty ? child.Class : "") + "'></i></span>"); sb.Append(" <span class='txt'>" + child.Descripcion + "</span>"); sb.Append("</a>"); //if(child.Children.Count() > 0) // sb.Append("<ul class='sub'>"); if (child.Children.Count() > 0) { if (IsInCurrentModulo(currenModulo, child.MenuId)) { sb.Append("<ul " + classSubExpandShow + " >"); } else { sb.Append("<ul class='sub'>"); } } #region Sub Menu 2° Nivel foreach (var subchild in child.Children) { // sb.Append("<li>"); if (currenModulo.Id == menuItem.MenuId) { sb.Append("<li " + classCurrent + " >"); } else { sb.Append("<li>"); } if (subchild.URL != string.Empty && subchild.URL != null) { if (subchild.URL.ToUpper().StartsWith("HTTP")) { if (IsInCurrentModulo(currenModulo, subchild.MenuId)) { sb.Append("<a href='" + subchild.URL + "' " + classExpand + " >"); } else { sb.Append("<a href='" + subchild.URL + "'>"); } } else { if (IsInCurrentModulo(currenModulo, subchild.MenuId)) { sb.Append("<a href='/" + subchild.URL + "' " + classExpand + " >"); } else { sb.Append("<a href='/" + subchild.URL + "'>"); } } } else if (IsInCurrentModulo(currenModulo, subchild.MenuId)) { sb.Append("<a href='#'>"); } else { sb.Append("<a href='#' " + classExpand + " >"); } sb.Append("<span class='icon'><i class='" + (subchild.Class != null && subchild.Class != string.Empty ? subchild.Class : "") + "'></i></span>"); sb.Append(" <span class='txt'>" + subchild.Descripcion + "</span>"); sb.Append("</a>"); //if (subchild.Children.Count() > 0) // sb.Append("<ul class='sub'>"); if (subchild.Children.Count() > 0) { if (IsInCurrentModulo(currenModulo, subchild.MenuId)) { sb.Append("<ul " + classSubExpandShow + " >"); } else { sb.Append("<ul class='sub'>"); } } #region Sub Menu 3° Nivel foreach (var subsubchild in subchild.Children) { // sb.Append("<li>"); if (currenModulo.Id == subsubchild.MenuId) { sb.Append("<li " + classCurrent + " >"); } else { sb.Append("<li>"); } if (subsubchild.URL != string.Empty && subsubchild.URL != null) { if (subsubchild.URL.ToUpper().StartsWith("HTTP")) { if (IsInCurrentModulo(currenModulo, subsubchild.MenuId)) { sb.Append("<a href='" + subsubchild.URL + "' " + classExpand + " >"); } else { sb.Append("<a href='" + subsubchild.URL + "'>"); } } else { if (IsInCurrentModulo(currenModulo, subsubchild.MenuId)) { sb.Append("<a href='/" + subsubchild.URL + "' " + classExpand + " >"); } else { sb.Append("<a href='/" + subsubchild.URL + "'>"); } } } else if (IsInCurrentModulo(currenModulo, subsubchild.MenuId)) { sb.Append("<a href='#'>"); } else { sb.Append("<a href='#' " + classExpand + " >"); } sb.Append("<span class='icon'><i class='" + (subsubchild.Class != null && subsubchild.Class != string.Empty ? subsubchild.Class : "") + "'></i></span>"); sb.Append(" <span class='txt'>" + subsubchild.Descripcion + "</span>"); sb.Append("</a>"); sb.Append("</li>"); } #endregion if (subchild.Children.Count() > 0) { sb.Append("</ul>"); } sb.Append("</li>"); } #endregion if (child.Children.Count() > 0) { sb.Append("</ul>"); } sb.Append("</li>"); } #endregion if (menuItem.Children.Count() > 0) { sb.Append("</ul>"); } sb.Append("</li>"); } } //foreach (var ob in listRolEmpresa.Select(o => o.Rol.ModulosPermiso)) //{ // foreach (var modulo in ob.GroupBy(o=>o.Modulo_Id).Select(group => group.First())) // { // var moduloSistema= listModulosSistema.Where(o => o.Id == modulo.Modulo_Id).FirstOrDefault(); // var result = moduloSistema.Parent. // } //} return(new HtmlString(sb.ToString())); }