public void BuildNavigation() { List <SAMenuItemDTO> arrangedMenuItems = new List <SAMenuItemDTO>(); //Remove the ff lines to disable caching if (CacheHelper.GetFromCacheWithCheck <List <SAMenuItemDTO> >("arrangedMenuItems") != null && CacheHelper.GetFromCacheWithCheck <List <SAMenuItemDTO> >("arrangedMenuItems").Count > 0) { arrangedMenuItems = CacheHelper.GetFromCacheWithCheck <List <SAMenuItemDTO> >("arrangedMenuItems"); this.view.BindNavigationMenu(arrangedMenuItems); return; } //Remove the ff lines to disable caching NavigationData data = new NavigationData(); MenuFilterSection menu = MenuFilterSection.GetConfig(); List <string> ids = menu.GetItemsToBeRemove(); string filter = string.Join(",", ids.ToArray()); MenuOrderSection menuOrder = MenuOrderSection.GetConfig(); List <SAMenuItemDTO> menuItems = data.GetAllUsedDiagrams(filter); if (menuOrder.MenuOrders.Count > 0) { foreach (MenuOrder item in menuOrder.MenuOrders) { SAMenuItemDTO order = menuItems.FirstOrDefault(c => c.ID == item.Id); if (order != null) { arrangedMenuItems.Insert(item.Order, order); } } if (menuItems.Count > menuOrder.MenuOrders.Count) { foreach (MenuOrder item in menuOrder.MenuOrders) { var order = menuItems.FirstOrDefault(c => c.ID == item.Id); if (order != null) { menuItems.Remove(order); } } arrangedMenuItems.AddRange(menuItems); } } else { arrangedMenuItems = menuItems.OrderBy(diag => diag.Text).ToList(); } //Remove the ff lines to disable caching CacheHelper.AddToCacheWithCheck("arrangedMenuItems", arrangedMenuItems); //Remove the ff lines to disable caching this.view.BindNavigationMenu(arrangedMenuItems); }
/// <summary> /// Gets all the the used diagrams. /// </summary> /// <param name="filter">SQL filter (where ....)</param> /// <returns>List of menus with child items. Like in System Architect.</returns> public List <SAMenuItemDTO> GetAllUsedDiagrams(string filter) { List <SAMenuItemDTO> cachedMenu = CacheHelper.GetFromCacheWithCheck <List <SAMenuItemDTO> >(cache, "sa_menu_key"); if (cachedMenu != null) { return(cachedMenu); } IDataReader reader = db.ExecuteReader(CommandType.Text, string.Concat(GlobalStringResource.Data_GetAllUsedDiagramsQuery, !string.IsNullOrEmpty(filter) ? string.Format(GlobalStringResource.NavData_TypeNotIn, filter) : string.Empty) ); List <SAMenuItemDTO> treeViewItems = new List <SAMenuItemDTO>(); int typeIndex = reader.GetOrdinal(GlobalStringResource.Type); while (reader.Read()) { Int16 value = reader.GetInt16(typeIndex); if (value > 0) { SAMenuItemDTO item = new SAMenuItemDTO(); string name = TypesReader.DiagramTypes[value]; item.ID = value; item.Text = name; item.ChildItems = GetSubDiagrams((int)value); if (item.ChildItems.Count > 0) { treeViewItems.Add(item); } } } reader.Close(); reader.Dispose(); CacheHelper.AddToCacheWithCheck(cache, GlobalStringResource.Data_sa_menu_key, treeViewItems); return(treeViewItems); }
public void RenderDetail(int id) { if (this.cache.GetData("asiscontent") != null) { string cachedContent = CacheHelper.GetFromCacheWithCheck <string>("asiscontent"); this.view.RenderContent(cachedContent); return; } AsIsData asIsData = new AsIsData(); EntityData entityData = new EntityData(); Dictionary <string, List <AsIsItemEntity> > sectionList = asIsData.GetSections(); StringBuilder html = new StringBuilder(); EntityDTO mainDto = entityData.GetOneEntity(id); List <EntityDTO> symbols = asIsData.GetAllAsIsSymbols(id); foreach (EntityDTO symbol in symbols) { EntityDTO defDto = entityData.GetRelatedDefinition(symbol.ID); //04-07-2013 //Added this check in order to ignore //symbols which doesnt have definition if (defDto == null) { continue; } defDto.ExtractProperties(); string group = defDto.RenderHTML(GlobalStringResource.ProcessModelGroup, RenderOption.None); int itemorder = 0; string order = defDto.RenderHTML("Item Order", RenderOption.None); if (!string.IsNullOrEmpty(order)) { int.TryParse(order, out itemorder); } List <EntityDTO> relatedDiagramDto = entityData.GetChildDiagrams(symbol.ID); if (sectionList.ContainsKey(group)) { sectionList[group].Add( new AsIsItemEntity() { DefinitionDTO = defDto, DiagramDTO = relatedDiagramDto, ItemOrder = itemorder }); } } /* * Arrange the items per group * if the item order is 0 then group the zeroes the arrange them alphabetically * then group the ones with orders then arrange them * clear the original list * append the zeroes first then the ordered */ foreach (KeyValuePair <string, List <AsIsItemEntity> > section in sectionList) { var list = section.Value; var zeroes = list.Where(c => c.ItemOrder == 0) .OrderBy(d => d.DefinitionDTO.Name).ToList(); var ordered = list.Where(x => x.ItemOrder > 0) .OrderBy(y => y.ItemOrder).ToList(); section.Value.Clear(); section.Value.AddRange(zeroes); section.Value.AddRange(ordered); } html.Append(string.Empty); html.Append(Resources.Split); html.Append(mainDto.Name); html.Append(Resources.Split); if (ShowInformationBox()) { //adds the info box on the homepage html.AppendFormat("<div id=\"home-info-box\" class=\"infoBox asis-info\"><a onclick=\"SetCookie('hide_home_box','1','30');remove_element('home-info-box');\" class=\"home-close ui-icon ui-icon-closethick\">Close</a>{0}</div>", AppSettingsReader.GetValue("HOME_DESCRIPTION")); } AsIsDiagramSection diagrams = AsIsDiagramSection.GetConfig(); RenderOuterDivs(html, diagrams.LeftGroup, sectionList); RenderOuterDivs(html, diagrams.RightGroup, sectionList); html.AppendFormat(GlobalStringResource.Presenter_ReportId_HiddenField, id); CacheHelper.AddToCacheWithCheck("asiscontent", html.ToString()); view.RenderContent(html.ToString()); }
private List <DropdownItem> CreateFilterObject(FilterType type) { if (CacheHelper.GetFromCacheWithCheck <List <DropdownItem> >(type.ToString()) != null) { return(CacheHelper.GetFromCacheWithCheck <List <DropdownItem> >(type.ToString())); } Strategy2020ContentBuilder contentBuilder = new Strategy2020ContentBuilder(); List <Strategy2020DTO> list = new List <Strategy2020DTO>(); if (CacheHelper.GetFromCacheWithCheck <List <Strategy2020DTO> >("filterbaselist") != null && CacheHelper.GetFromCacheWithCheck <List <Strategy2020DTO> >("filterbaselist").Count > 0) { list = CacheHelper.GetFromCacheWithCheck <List <Strategy2020DTO> >("filterbaselist"); } else { list = contentBuilder.BuildStrategy2020List(); CacheHelper.AddToCacheForOneMinute(this.cache, "filterbaselist", list); } List <DropdownItem> dds = new List <DropdownItem>(); switch (type) { case FilterType.Type: dds = filterData.GetValidTypeFilter(list); break; case FilterType.Agenda: dds = filterData.GetValidAgendaFilter(list); break; case FilterType.Policy: dds = filterData.GetValidPolicyFilter(list); break; case FilterType.Rule: dds = filterData.GetValidRuleFilter(list); break; case FilterType.Process: dds = filterData.GetValidProcessFilter(list); break; case FilterType.SubProcess: dds = filterData.GetValidSubProcessFilter(list); break; case FilterType.Application: dds = filterData.GetValidApplicationFilter(list); break; case FilterType.Module: dds = filterData.GetValidModuleFilter(list); break; default: break; } CacheHelper.AddToCacheWithCheck(type.ToString(), dds); return(dds); //this.view.ShowContent(html); }
public static string BuildNavigationMenu(List <SAMenuItemDTO> menuItems) { string cacheValue = CacheHelper.GetFromCacheWithCheck <string>("tabs_menu"); if (!string.IsNullOrEmpty(cacheValue)) { return(cacheValue); } StringBuilder builder = new StringBuilder(); builder.Append("<nav role=\"navigation\" class=\"navbar navbar-default\" style=\"margin-bottom:0px !important;border-width:0 !important;\">"); builder.Append("<div class=\"container-fluid\">"); //builder.Append("<div class=\"collapse navbar-collapse remove-left-padding\">"); //foreach (var item in menuItems) //{ //string additionalStyles = string.Empty; //if (item.ChildItems.Count > 10) //{ // additionalStyles = "overflow-x:hidden;overflow-y:scroll;"; //} //int divHeight = 699 - (menuItems.Count * 25); //builder.AppendFormat("<h3 title=\"Click to expand diagrams of {0}\">{1}</h3>", item.Text, item.Text); ////builder.Append("<dd>"); //builder.AppendFormat("<div style=\"{0};{1}\">", additionalStyles, string.Format("max-height:{0}px;", divHeight)); //builder.Append("<ul>"); //foreach (var sub in item.ChildItems) //{ // //builder.AppendFormat("<li><a id=\"childmenu_{0}\" onclick=\"RenderEntity('Default.aspx?id={1}',{2});\" title=\"{3}\">{4}</a></li>", sub.Key, sub.Key, sub.Key, sub.Value, sub.Value); // //Uncomment if delayed call is enabled // builder.AppendFormat("<li><a id=\"childmenu_{0}\" href=\"Default.aspx?id={1}\" title=\"{2}\">{3}</a></li>", sub.Key, sub.Key, sub.Value, sub.Value); //} //builder.Append("</ul>"); //builder.Append("</div>"); ////builder.Append("</dd>"); //} //builder.Append("</dl>"); builder.Append("<ul class=\"nav navbar-nav\">"); for (int i = 1; i <= menuItems.Count; i++) { builder.Append("<li class=\"dropdown\">"); builder.AppendFormat("<a id=\"drop{0}\" href=\"#\" role=\"button\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">{1} <b class=\"caret\"></b></a>", i, menuItems[i - 1].Text); builder.AppendFormat("<ul class=\"dropdown-menu menu-suppress\" role=\"menu\" aria-labelledby=\"drop{0}\">", i); foreach (var child in menuItems[i - 1].ChildItems) { builder.AppendFormat("<li role=\"presentation\"><a role=\"menuitem\" tabindex=\"-1\" href=\"Default.aspx?id={0}\" title=\"{1}\">{2}</a></li>", child.Key, child.Value, child.Value); } builder.Append("</ul>"); } //for (int i = 1; i <= menuItems.Count; i++) //{ // builder.AppendFormat("<li class=\"menu_list\"><a href=\"#tabs-{0}\">{1}</a></li>", i, menuItems[i - 1].Text); //} //builder.Append("</ul>"); //for (int j = 1; j <= menuItems.Count; j++) //{ // builder.AppendFormat("<div id=\"tabs-{0}\" class=\"list-holder\">", j); // builder.Append("<ul>"); // foreach (var child in menuItems[j - 1].ChildItems) // { // builder.AppendFormat("<li><a id=\"childmenu_{0}\" href=\"Default.aspx?id={1}\" title=\"{2}\">{3}</a></li>", child.Key, child.Key, child.Value, child.Value); // } // builder.Append("</ul>"); // builder.Append("</div>"); //} builder.Append("</ul>"); builder.Append("</div></nav>"); CacheHelper.AddToCacheWithCheck("tabs_menu", builder.ToString()); return(builder.ToString()); }