コード例 #1
0
ファイル: MenuViewModel.cs プロジェクト: syenx/Integrador
        /// <summary>
        /// Retorna Menu de AJustes
        /// </summary>
        /// <param name="menunestead">Menu Hierarquia</param>
        /// <param name="idPai">id Menu PAI</param>
        /// <returns></returns>
        public List <Menu> RetornaMenuAjuste(MenuNestead menunestead, int idPai)
        {
            var lista = new List <Menu>();

            var menu = _repo.Obter <Menu>(menunestead.id);

            if (menu.MenuPai == null && idPai > 0)
            {
                menu.MenuPai = new Menu();
            }

            menu.MenuPai = _repo.Obter <Menu>(idPai);

            lista.Add(menu);

            if (menunestead.children != null)
            {
                foreach (var item in menunestead.children)
                {
                    lista.AddRange(RetornaMenuAjuste(item, menu.Id));
                }
            }

            return(lista);
        }
コード例 #2
0
ファイル: MenuViewModel.cs プロジェクト: syenx/Integrador
        /// <summary>
        /// Parse View Model
        /// </summary>
        /// <param name="model">Menu View Model</param>
        /// <returns></returns>
        public MenuNestead ParseViewModel(MenuViewModel model)
        {
            var menus   = new List <Menu>();
            var paginas = new List <Pagina>();

            if (model.MenuNestead != null)
            {
                var array = model.MenuNestead;

                foreach (var item in array)
                {
                    var menu = new Menu();

                    if (item.tipo.ToUpper() == "MENU")
                    {
                        menu         = _repo.Obter <Menu>(item.id);
                        menu.MenuPai = null;
                        menus.Add(menu);
                    }
                    else
                    {
                        var pagina = new Pagina();
                        pagina = _repoPagina.Obter <Pagina>(item.id);
                        paginas.Add(pagina);
                    }


                    if (item.children != null)
                    {
                        foreach (var it in item.children)
                        {
                            if (it.tipo.ToUpper() == "MENU")
                            {
                                var menufilho = RetornaMenuAjuste(it, menu.Id);
                                menus.AddRange(menufilho);
                            }
                            else
                            {
                                var paginaFilho = new Pagina();
                                paginaFilho      = _repoPagina.Obter <Pagina>(it.id);
                                paginaFilho.Menu = menu;
                                paginas.Add(paginaFilho);
                            }
                        }
                    }
                }
            }

            var menuNestead = new MenuNestead()
            {
                Menus     = menus
                , Paginas = paginas
            };


            return(menuNestead);
        }