// GET: ConfiguracaoArvore/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ConfiguracaoArvore configuracaoArvore = db.ConfiguracaoArvore.Find(id);

            if (configuracaoArvore == null)
            {
                return(HttpNotFound());
            }
            return(View(configuracaoArvore));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            if (db.ArvoreGerada.Count(arvore => arvore.ConfiguracaoArvoreID == id) > 0)
            {
                ModelState.AddModelError("", "Já existem arvores geradas para essa configuração. Exclusão não permitida.");
            }
            else
            {
                ConfiguracaoArvore configuracaoArvore = db.ConfiguracaoArvore.Find(id);
                TabelaTemporaria.Excluir(configuracaoArvore.ID);
                db.ConfiguracaoAtributo.RemoveRange(db.ConfiguracaoAtributo.Where(atr => atr.ConfiguracaoArvoreID == id));
                db.Agendamento.RemoveRange(db.Agendamento.Where(atr => atr.ConfiguracaoArvoreID == id));
                db.ConfiguracaoArvore.Remove(configuracaoArvore);
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            return(View("Delete", db.ConfiguracaoArvore.Find(id)));
        }
        public ActionResult Create(ConfiguracaoArvore configuracaoArvore)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (db.AcessoBaseRh.Count() <= 0)
                    {
                        ModelState.AddModelError("", "Não foi realizado cadastro da conexão com a Base RH. Favor verificar.");
                    }
                    else
                    {
                        var acesso = db.AcessoBaseRh.FirstOrDefault();

                        if (!TabelaTemporaria.VerificarComando(configuracaoArvore.Sql, acesso.RetornaStringConexao()))
                        {
                            ModelState.AddModelError("", "Comando SQL possui problemas. Favor verificar.");
                        }
                        else
                        {
                            db.ConfiguracaoArvore.Add(configuracaoArvore);
                            db.SaveChanges();

                            configuracaoArvore.Tabela          = TabelaTemporaria.Gerar(configuracaoArvore.Sql, configuracaoArvore.ID, acesso.RetornaStringConexao());
                            db.Entry(configuracaoArvore).State = EntityState.Modified;
                            db.SaveChanges();

                            return(RedirectToAction("Index"));
                        }
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                }
            }

            return(View(configuracaoArvore));
        }
        // GET: ConfiguracaoArvore/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ConfiguracaoArvore configuracaoArvore = db.ConfiguracaoArvore.Find(id);

            if (db.ArvoreGerada.Count(arvore => arvore.ConfiguracaoArvoreID == configuracaoArvore.ID) > 0)
            {
                ViewBag.PossuiArvoreGerada = true;
            }
            else
            {
                ViewBag.PossuiArvoreGerada = false;
            }

            if (configuracaoArvore == null)
            {
                return(HttpNotFound());
            }
            return(View(configuracaoArvore));
        }