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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 5
0
        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} &nbsp;<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());
        }