public void CadastrarCandidatoNaoPodeCadastrarComNomePopularIgualOutroRegistroDaTabela()
 {
     Candidato c = new Candidato("teste", "Pedro II", new DateTime(2015, 11, 02), "12345", 18, "abcd", 18103, 1, true);
     CandidatoRepositorio cr = new CandidatoRepositorio();
     bool cadastrou = cr.Cadastrar(c);
     Assert.AreEqual(false, cadastrou);
 }
 public void CadastrarCandidatoNaoPodeTerCargoPrefeitoSeJaTemAlgueDoPartidoComEsseCargo()
 {
     Candidato c = new Candidato("teste", "teste", new DateTime(2015, 11, 02), "12345", 1, "abcd", 10103, 1, true);
     CandidatoRepositorio cr = new CandidatoRepositorio();
     bool cadastrou = cr.Cadastrar(c);
     Assert.AreEqual(false, cadastrou);
 }
 public void CadastrarCandidatoNaoPodeCadastrarComRegistroTREJaExistente()
 {
     Candidato c = new Candidato("teste", "teste", new DateTime(2015, 11, 02), "0001", 18, "abcd", 18103, 1, true);
     CandidatoRepositorio cr = new CandidatoRepositorio();
     bool cadastrou = cr.Cadastrar(c);
     Assert.AreEqual(false, cadastrou);
 }
        public bool Editar(Candidato c)
        {
            if (PodeCadastrar(c) && !Eleicao.Iniciou)
            {
                string connectionString = ConfigurationManager.ConnectionStrings["URNA"].ConnectionString;
                using (TransactionScope transacao = new TransactionScope())
                using (IDbConnection connection = new SqlConnection(connectionString))
                {
                    IDbCommand comando = connection.CreateCommand();
                    comando.CommandText = "UPDATE Candidato SET NomeCompleto = @paramNomeCompleto,NomePopular = @paramNomePopular,DataNascimento = @paramDataNascimento,RegistroTRE = @paramRegistroTRE,IDPartido = @paramIDPartido,Foto = @paramFoto, Numero = @paramNumero,IDCargo = @paramIDCargo, Exibe = @paramExibe WHERE IDCandidato = @paramIDCandidato";
                    comando.AddParameter("paramIDCandidato", c.IDCandidato);
                    comando.AddParameter("paramNomeCompleto", c.NomeCompleto);
                    comando.AddParameter("paramNomePopular", c.NomePopular);
                    comando.AddParameter("paramDataNascimento", c.DataNascimento);
                    comando.AddParameter("paramRegistroTRE", c.RegistroTRE);
                    comando.AddParameter("paramIDPartido", c.IDPartido);
                    comando.AddParameter("paramFoto", c.Foto);
                    comando.AddParameter("paramNumero", c.Numero);
                    comando.AddParameter("paramIDCargo", c.IDCargo);
                    comando.AddParameter("paramExibe", c.Exibe);

                    connection.Open();
                    comando.ExecuteNonQuery();
                    transacao.Complete();
                    connection.Close();
                }
                return true;
            }
            else
            {
                return false;
            }
        }
 public void CadastrarCandidatoNaoPodeCadastrarComNomeCompletoEmBranco()
 {
     Candidato c = new Candidato("", "teste", new DateTime(2015, 11, 02), "12345", 18, "abcd", 18103, 1, true);
     CandidatoRepositorio cr = new CandidatoRepositorio();
     bool cadastrou = cr.Cadastrar(c);
     Assert.AreEqual(false,cadastrou);
 }
 public void CadastrarCandidatoCadastraCandidato()
 {
     Candidato c = new Candidato("teste", "teste", new DateTime(2015, 11, 02), "12345", 1, null, 18103, 2, true);
     c.IDCandidato = 15;
     CandidatoRepositorio cr = new CandidatoRepositorio();
     bool cadastrou = cr.Cadastrar(c);
     Assert.AreEqual(true, cadastrou);
 }
 public void CadastrarCandidatoNaoPodeCadastrarSeAsEleicoesJaComecaram()
 {
     Candidato c = new Candidato("teste", "teste", new DateTime(2015, 11, 02), "12345", 1, "abcd", 18103, 2, true);
     CandidatoRepositorio cr = new CandidatoRepositorio();
     bool cadastrou = cr.Cadastrar(c);
     Eleicao e = new Eleicao();
     e.IniciarEleicao();
     Assert.AreEqual(false, cadastrou);
     e.TerminarEleicao();
 }
 public void EditarCandidatoEditaCandidato()
 {
     Candidato c = new Candidato("abcdef", "BCDEF", new DateTime(2015, 11, 02), "1234567", 1, "abcd", 1675843, 2, true);
     c.IDCandidato = 15;
     CandidatoRepositorio cr = new CandidatoRepositorio();
     bool cadastrou = cr.Editar(c);
     Assert.AreEqual(true, cadastrou);
 }
 public void EditarCandidatoNaoPodeTerCargoPrefeitoSeJaTemAlgueDoPartidoComEsseCargo()
 {
     Candidato c = new Candidato("teste", "teste", new DateTime(2015, 11, 02), "12345", 1, "abcd", 20102, 1, true);
     c.IDCandidato = 15;
     CandidatoRepositorio cr = new CandidatoRepositorio();
     bool editou = cr.Editar(c);
     Assert.AreEqual(false, editou);
 }
 public void EditarCandidatoNaoPodeEditarComRegistroTREJaExistente()
 {
     Candidato c = new Candidato("teste", "teste", new DateTime(2015, 11, 02), "0001", 18, "abcd", 18103, 1, true);
     c.IDCandidato = 15;
     CandidatoRepositorio cr = new CandidatoRepositorio();
     bool editou = cr.Editar(c);
     Assert.AreEqual(false, editou);
 }
 public void EditarCandidatoNaoPodeEditarComNomePopularEmBranco()
 {
     Candidato c = new Candidato("teste", "", new DateTime(2015, 11, 02), "12345", 18, "abcd", 18103, 1, true);
     c.IDCandidato = 15;
     CandidatoRepositorio cr = new CandidatoRepositorio();
     bool editou = cr.Editar(c);
     Assert.AreEqual(false, editou);
 }
        private bool PodeExcluir(int idCandidato)
        {
            Candidato candidatoEncontrado = null;
            string connectionString = ConfigurationManager.ConnectionStrings["URNA"].ConnectionString;
            using (IDbConnection connection = new SqlConnection(connectionString))
            {
                candidatoEncontrado = new Candidato();
                IDbCommand comando = connection.CreateCommand();
                comando.CommandText = "SELECT * FROM Candidato WHERE IDCandidato = @paramIDCandidato";
                comando.AddParameter("paramIDCandidato",idCandidato);

                connection.Open();
                IDataReader reader = comando.ExecuteReader();
                if (reader.Read())
                {
                    candidatoEncontrado.IDCandidato = Convert.ToInt32(reader["IDCandidato"]);
                    candidatoEncontrado.NomeCompleto = reader["NomeCompleto"].ToString();
                    candidatoEncontrado.NomePopular = reader["NomePopular"].ToString();
                    candidatoEncontrado.DataNascimento = Convert.ToDateTime(reader["DataNascimento"]);
                    candidatoEncontrado.RegistroTRE = reader["RegistroTRE"].ToString();
                    candidatoEncontrado.IDPartido = Convert.ToInt32(reader["IDPartido"]);
                    candidatoEncontrado.Foto = reader["Foto"].ToString();
                    candidatoEncontrado.Numero = Convert.ToInt32(reader["Numero"]);
                    candidatoEncontrado.IDCargo = Convert.ToInt32(reader["IDCargo"]);
                    candidatoEncontrado.Exibe = Convert.ToBoolean(reader["Exibe"]);
                }
                connection.Close();
            }
            if (candidatoEncontrado != null && candidatoEncontrado.NomeCompleto != "Voto em Branco" && candidatoEncontrado.NomeCompleto != "Voto Nulo")
            {
                return true;
            }
            else
            {
                return false;
            }
        }
 private bool PodeCadastrar(Candidato c)
 {
     bool TemPrefeitoDessePartido=false;
     if(c.IDCargo == 1){
         TemPrefeitoDessePartido = verificaPrefeitosDoPartido(c.IDPartido);
     }
     if (!string.IsNullOrEmpty(c.NomeCompleto) && !string.IsNullOrEmpty(c.NomePopular)&& CandidatoNaoExiste(c) && !TemPrefeitoDessePartido)
     {
         return true;
     }
     else
     {
         return false;
     }
 }
        private bool CandidatoNaoExiste(Candidato c)
        {
            Candidato candidatoEncontrado = null;
            string connectionString = ConfigurationManager.ConnectionStrings["URNA"].ConnectionString;
            using (IDbConnection connection = new SqlConnection(connectionString))
            {
                candidatoEncontrado = new Candidato();
                IDbCommand comando = connection.CreateCommand();
                comando.CommandText = "SELECT IDCandidato,NomeCompleto,NomePopular,DataNascimento,RegistroTRE,IDPartido,Foto,Numero,IDCargo,Exibe FROM Candidato WHERE NomePopular=@paramNomePopular or RegistroTRE = @paramRegistroTRE or Numero = @paramNumero";

                comando.AddParameter("paramNomePopular", c.NomePopular);
                comando.AddParameter("paramRegistroTRE",c.RegistroTRE);
                comando.AddParameter("paramNumero", c.Numero);

                connection.Open();

                IDataReader reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    candidatoEncontrado.IDCandidato =  Convert.ToInt32(reader["IDCandidato"]);
                    candidatoEncontrado.NomeCompleto = reader["NomeCompleto"].ToString();
                    candidatoEncontrado.NomePopular = reader["NomePopular"].ToString();
                    candidatoEncontrado.DataNascimento = Convert.ToDateTime(reader["DataNascimento"]);
                    candidatoEncontrado.RegistroTRE = reader["RegistroTRE"].ToString();
                    candidatoEncontrado.IDPartido = Convert.ToInt32(reader["IDPartido"]);
                    candidatoEncontrado.Foto = reader["Foto"].ToString();
                    candidatoEncontrado.Numero = Convert.ToInt32(reader["Numero"]);
                    candidatoEncontrado.IDCargo = Convert.ToInt32(reader["IDCargo"]);
                    candidatoEncontrado.Exibe = Convert.ToBoolean(reader["Exibe"]);
                }
                connection.Close();
                if (candidatoEncontrado.NomeCompleto==null)
                {
                    return true;
                }
                else
                {
                    return false;
                }

            }
        }