private ModuleMenuItems BuildDocumentMenu() { ModuleMenuItems moduleMenuItems = new ModuleMenuItems(); ModuleMenuItem moduleMenuItem = new ModuleMenuItem(); moduleMenuItem.Name = MenuNameConstants.DocumentManagement; moduleMenuItem.DisplayName = _localizationManager.GetString(DocumentResourceNames.DocumentResourceName, DocumentResourceNames.ApplicationName); moduleMenuItem.Order = 0; if (_permissionChecker.IsGranted("admindocumentmvc_permission", "write")) { #region Release Document MenuItem menuReleaseDocument = new MenuItem(); menuReleaseDocument.Name = MenuNameConstants.ReleaseDocument; menuReleaseDocument.DisplayName = _localizationManager.GetString(DocumentResourceNames.DocumentResourceName, DocumentResourceNames.MenuReleaseDocument); menuReleaseDocument.Order = 0; menuReleaseDocument.Url = "#"; menuReleaseDocument.Icon = "fa fa-cog"; menuReleaseDocument.CssClass = "treeview"; menuReleaseDocument.Items.Add(new MenuItem { Name = MenuNameConstants.ReleaseNewDocument, DisplayName = _localizationManager.GetString(DocumentResourceNames.DocumentResourceName, DocumentResourceNames.MenuReleaseNewDocument), Url = "/document/index", Order = 0 }); menuReleaseDocument.Items.Add(new MenuItem { Name = MenuNameConstants.ReviewDocument, DisplayName = _localizationManager.GetString(DocumentResourceNames.DocumentResourceName, DocumentResourceNames.MenuReviewDocument), Url = "/document/reviewdocument", Order = 1 }); #endregion moduleMenuItem.Items.Add(menuReleaseDocument); #region Appendice MenuItem menuAppendiceDocument = new MenuItem(); menuAppendiceDocument.Name = MenuNameConstants.ReleaseAppendice; menuAppendiceDocument.DisplayName = _localizationManager.GetString(DocumentResourceNames.DocumentResourceName, DocumentResourceNames.MenuReleaseAppendice); menuAppendiceDocument.Order = 0; menuAppendiceDocument.Url = "#"; menuAppendiceDocument.Icon = "fa fa-cog"; menuAppendiceDocument.CssClass = "treeview"; menuAppendiceDocument.Items.Add(new MenuItem { Name = MenuNameConstants.ReleaseNewAppendice, DisplayName = _localizationManager.GetString(DocumentResourceNames.DocumentResourceName, DocumentResourceNames.MenuReleaseNewAppendice), Url = "/appendice/index", Order = 0 }); menuAppendiceDocument.Items.Add(new MenuItem { Name = MenuNameConstants.ReviewAppendice, DisplayName = _localizationManager.GetString(DocumentResourceNames.DocumentResourceName, DocumentResourceNames.MenuReviewAppendice), Url = "/document/reviewdocument", Order = 1 }); #endregion moduleMenuItem.Items.Add(menuAppendiceDocument); #region Categories MenuItem menuCategory = new MenuItem(); menuCategory.Name = MenuNameConstants.Category; menuCategory.DisplayName = _localizationManager.GetString(DocumentResourceNames.DocumentResourceName, DocumentResourceNames.MenuCategory); menuCategory.Order = 0; menuCategory.Url = "#"; menuCategory.Icon = "fa fa-list"; menuCategory.CssClass = "treeview"; menuCategory.Items.Add(new MenuItem { Name = MenuNameConstants.Module, DisplayName = _localizationManager.GetString(DocumentResourceNames.DocumentResourceName, DocumentResourceNames.MenuModule), Url = "/module/index", Order = 0 }); menuCategory.Items.Add(new MenuItem { Name = MenuNameConstants.DocumentType, DisplayName = _localizationManager.GetString(DocumentResourceNames.DocumentResourceName, DocumentResourceNames.MenuDocumentType), Url = "/documenttype/index", Order = 1 }); menuCategory.Items.Add(new MenuItem { Name = MenuNameConstants.PromulgateStatus, DisplayName = _localizationManager.GetString(DocumentResourceNames.DocumentResourceName, DocumentResourceNames.MenuPromulgateStatus), Url = "/promulgatestatus/index", Order = 2 }); #endregion moduleMenuItem.Items.Add(menuCategory); } #region Operation Data MenuItem menuOperationData = new MenuItem(); menuOperationData.Name = MenuNameConstants.OperationData; menuOperationData.DisplayName = _localizationManager.GetString(DocumentResourceNames.DocumentResourceName, DocumentResourceNames.MenuOperationData); menuOperationData.Order = 0; menuOperationData.Url = "#"; menuOperationData.Icon = "fa fa-list"; menuOperationData.CssClass = "treeview"; var documentTypes = SimpleCache.DocumentTypes; if (documentTypes != null && documentTypes.Any()) { foreach (var documentType in documentTypes) { menuOperationData.Items.Add(new MenuItem { Name = documentType.Code, DisplayName = documentType.Name, Url = $"/OperationData/list?code={documentType.Code}", Order = 2 }); } } #endregion moduleMenuItem.Items.Add(menuOperationData); moduleMenuItems.Add(moduleMenuItem); return(moduleMenuItems); }
public string RenderToHtml() { StringBuilder htmlBuilder = new StringBuilder(); ModuleMenuItems menu = MenuConfigurationContext.Menu; if (menu != null) { foreach (ModuleMenuItem moduleMenu in menu) { // Begin Menu htmlBuilder.AppendLine(SidebarMenuBeginTemplate); // Header Menu htmlBuilder.AppendLine(string.Format(SidebarHeaderTemplate, moduleMenu.DisplayName)); if (moduleMenu.Items.Any()) { foreach (MenuItem menuItem in moduleMenu.Items) { if (menuItem.IsLeaf) { if (!string.IsNullOrEmpty(SelectedMenu) && SelectedMenu == menuItem.Name) { htmlBuilder.AppendLine(string.Format(LeafMenuTemplate, menuItem.Url, menuItem.Icon, menuItem.DisplayName, "active")); } else { htmlBuilder.AppendLine(string.Format(LeafMenuTemplate, menuItem.Url, menuItem.Icon, menuItem.DisplayName, string.Empty)); } } else { var hasSelectedMenu = menuItem.Items.Any(m => m.Name == SelectedMenu); if (hasSelectedMenu) { htmlBuilder.AppendLine(@"<li class=""treeview active menu-open"">"); } else { htmlBuilder.AppendLine(@"<li class=""treeview"">"); } htmlBuilder.AppendLine(string.Format(@" <a href=""{0}""> <i class=""{1}""></i> <span>{2}</span> <span class=""pull-right-container""> <i class=""fa fa-angle-left pull-right""></i> </span> </a>", menuItem.Url, menuItem.Icon, menuItem.DisplayName)); htmlBuilder.AppendLine(@"<ul class=""treeview-menu"">"); foreach (var childMenuItem in menuItem.Items) { if (!string.IsNullOrEmpty(SelectedMenu) && SelectedMenu == childMenuItem.Name) { htmlBuilder.AppendLine(string.Format(LeafMenuTemplate, childMenuItem.Url, childMenuItem.Icon, childMenuItem.DisplayName, "active")); } else { htmlBuilder.AppendLine(string.Format(LeafMenuTemplate, childMenuItem.Url, childMenuItem.Icon, childMenuItem.DisplayName, string.Empty)); } } htmlBuilder.AppendLine(@"</ul>"); htmlBuilder.AppendLine("</li>"); } } } // End Menu htmlBuilder.AppendLine(SidebarMenuEndTemplate); } } return(htmlBuilder.ToString()); }