Exemplo n.º 1
0
        /// <summary>
        /// obtém as raízes de uma HierarchicalList
        /// </summary>
        /// <param name="lista">HierarchicalList - lista hierárquica a se obterem as raizes</param>
        /// <returns>HierarchicalList - lista apenas com as raízes</returns>
        private TFWHierarchicalList _getRoots(TFWHierarchicalList lista)
        {
            //return lista.GetRoot();
            var orfaos = lista.Where(x => !lista.Select(i => i.Id).Contains(x.IdPai ?? 0)).ToList();

            return(new TFWHierarchicalList(orfaos));
        }
Exemplo n.º 2
0
        /// <summary>
        /// obtém todos os nós de projeto em forma de um TFWHierarchicalList
        /// deixando pré selecionada a opção que vier como parâmetro em caso de edição da form
        /// </summary>
        /// <param name="valor">int? - valor que já estava selecionado ou salvo no Model</param>
        /// <returns>TFWHierarchicalList - lista para usar em um combo com simulação de hierarquia no estilo</returns>
        public static TFWHierarchicalList GetNodes(int?valor = null)
        {
            TPAContext          db              = new TPAContext();
            TFWHierarchicalList lstUsuario      = new TFWHierarchicalList();
            TFWHierarchicalList lst             = new TFWHierarchicalList();
            List <int>          idsNodesUsuario = new List <int>();

            var usu       = HttpContext.Current.User.Identity.Name;
            var usuLogado = db.Usuarios.Where(u => u.Login == usu).FirstOrDefault();

            if (usuLogado != null)
            {
                var nodes = usuLogado.NosDoUsuario.ToList();
                if (nodes != null && nodes.Any())
                {
                    foreach (var n in nodes)
                    {
                        lstUsuario.Add(n.Id, n.Pai != null ? n.Pai.Id : new Nullable <int>(), n.Nome);
                    }
                }
            }

            idsNodesUsuario.AddRange(lstUsuario.Select(s => s.Id).ToList());

            foreach (var node in db.ProjectNodes.ToList())
            {
                if (idsNodesUsuario.Contains(node.Id))
                {
                    lst.Add(node.Id, node.Pai_Id != null ? node.Pai_Id : new Nullable <int>(), node.Nome);
                }
                else
                {
                    lst.Add(node.Id, node.Pai != null ? node.Pai.Id : new Nullable <int>(), node.Nome, false);
                }
            }

            return(lst);
        }
Exemplo n.º 3
0
        private void CarregaProjetos(int?valor = null)
        {
            TFWHierarchicalList lstUsuario      = new TFWHierarchicalList();
            TFWHierarchicalList lst             = new TFWHierarchicalList();
            List <int>          idsNodesUsuario = new List <int>();

            var usu       = this.User.Identity.Name;
            var usuLogado = db.Usuarios.Where(u => u.Login == usu).FirstOrDefault();

            if (usuLogado != null)
            {
                var nodes = usuLogado.NosDoUsuario.ToList();
                if (nodes != null && nodes.Any())
                {
                    foreach (var n in nodes)
                    {
                        lstUsuario.Add(n.Id, n.Pai != null ? n.Pai.Id : new Nullable <int>(), n.Nome);
                    }
                }
            }

            idsNodesUsuario.AddRange(lstUsuario.Select(s => s.Id).ToList());

            foreach (var node in db.ProjectNodes.ToList())
            {
                if (idsNodesUsuario.Contains(node.Id))
                {
                    lst.Add(node.Id, node.Pai_Id != null ? node.Pai_Id : new Nullable <int>(), node.Nome);
                }
                else
                {
                    lst.Add(node.Id, node.Pai != null ? node.Pai.Id : new Nullable <int>(), node.Nome, false);
                }
            }

            ViewBag.Nodes = lst;
        }