示例#1
0
        public void Gerar()
        {
            foreach (Agendamento agendamento in db.Agendamento.Where(ag => ag.Ativo).ToList())
            {
                if (PermitiGerar(agendamento))
                {
                    var acesso = db.AcessoBaseRh.FirstOrDefault();

                    //Deve conter informações para acesso na base RH e deve ter os atributos da árvore configurados
                    if (acesso != null && db.ConfiguracaoAtributo.Count(config => config.ConfiguracaoArvoreID == agendamento.ConfiguracaoArvoreID) > 0)
                    {
                        //Toda vez que integrar deve excluir a tabela e gerar novamente para buscar as novas informações
                        var configuracaoArvore = db.ConfiguracaoArvore.FirstOrDefault(config => config.ID == agendamento.ConfiguracaoArvoreID);
                        TabelaTemporaria.Excluir(configuracaoArvore.ID);
                        configuracaoArvore.Tabela          = TabelaTemporaria.Gerar(configuracaoArvore.Sql, configuracaoArvore.ID, acesso.RetornaStringConexao());
                        db.Entry(configuracaoArvore).State = EntityState.Modified;
                        db.SaveChanges();

                        RodarArvore(agendamento.ConfiguracaoArvoreID);
                        agendamento.UltimaExecucao  = DateTime.Now;
                        db.Entry(agendamento).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
            }
        }
        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 Edit(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
                        {
                            TabelaTemporaria.Excluir(configuracaoArvore.ID);
                            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));
        }