public void Editar()
        {
            IEleitorRepositorio repositorio = new EleitorRepositorio();
            var servico = new EleitorServicoDominio(repositorio);

            var eleitor = new Eleitor()
            {
                Nome = "Editar test",
                CPF = "234534432",
                RG = "126687662",
                TituloEleitor = "13642",
                DataNascimento = DateTime.Now,
                Secao = "2733",
                ZonaEleitoral = "N216",
                Situacao = 'A',
                Votou = 'N'
            };

            servico.Add(eleitor);
            eleitor = servico.BusarPorCpf(eleitor.CPF);
            eleitor.Nome = "Editado";

            servico.Editar(eleitor);
            Assert.IsTrue(servico.FindByName("Editado").Count > 0);
        }
        public void Deletar()
        {
            IEleitorRepositorio repositorio = new EleitorRepositorio();
            var servico = new EleitorServicoDominio(repositorio);

            var eleitor = new Eleitor()
            {
                Nome = "Deletar test",
                CPF = "2367432",
                RG = "12846772",
                TituloEleitor = "178642",
                DataNascimento = DateTime.Now,
                Secao = "2733",
                ZonaEleitoral = "N216",
                Situacao = 'A',
                Votou = 'N'
            };

            servico.Add(eleitor);
            eleitor = servico.BuscarPorRG(eleitor.RG);

            servico.Excluir(eleitor);
            Assert.IsTrue(servico.FindByName("Deletar t").Count == 0);
        }
 public void Excluir(Eleitor eleitor)
 {
     this.repositorio.Excluir(eleitor);
 }
 public void Editar(Eleitor eleitor)
 {
     this.repositorio.Editar(eleitor);
 }
 public void Add(Eleitor eleitor)
 {
     this.repositorio.Cadastrar(eleitor);
 }
        public void Cadastrar(Eleitor item)
        {
            if (Eleicao.Iniciou)
            {
                throw new Exception("As eleições iniciaram não é possivel fazer essa operação");
            }

            if (!this.ValidarEleitor(item))
            {
                throw new Exception("Eleitor não pode ser inserido");
            }

            using (TransactionScope transacao = new TransactionScope())
            using (IDbConnection connection = new SqlConnection(connectionString))
            {
                IDbCommand cmd = connection.CreateCommand();
                cmd.CommandText = "INSERT INTO Eleitor(Nome, TituloEleitoral, RG, CPF, DataNascimento, ZonaEleitoral, Secao, Situacao, Votou) "
                                  + "VALUES (@paramNome,@paramTitulo,@paramRG,@paramCPF,@paramData,@paramZona,@paramSecao,@paramSituacao,@paramVotou)";

                cmd.AddParameter("paramNome", item.Nome);
                cmd.AddParameter("paramTitulo", item.TituloEleitor);
                cmd.AddParameter("paramRG", item.RG);
                cmd.AddParameter("paramCPF", item.CPF);
                cmd.AddParameter("paramData", item.DataNascimento);
                cmd.AddParameter("paramZona", item.ZonaEleitoral);
                cmd.AddParameter("paramSecao", item.Secao);
                cmd.AddParameter("paramSituacao", item.Situacao);
                cmd.AddParameter("paramVotou", item.Votou);

                connection.Open();
                cmd.ExecuteNonQuery();

                transacao.Complete();
            }
        }
        private bool ValidarEleitor(Eleitor eleitor)
        {
            bool valido = true;

            Eleitor tempEleitor = this.BuscarPorCpf(eleitor.CPF);
            if (tempEleitor != null && tempEleitor.Id != eleitor.Id)
            {
                valido = false;
            }

            tempEleitor = this.BuscarPorRG(eleitor.RG);
            if (tempEleitor != null && tempEleitor.Id != eleitor.Id)
            {
                valido = false;
            }

            tempEleitor = this.BuscarPorTituloEleitor(eleitor.TituloEleitor);
            if (tempEleitor != null && tempEleitor.Id != eleitor.Id)
            {
                valido = false;
            }

            return valido;
        }
        public Eleitor FindById(int id)
        {
            using (IDbConnection connection = new SqlConnection(this.connectionString))
            {
                var eleitor = new Eleitor();

                IDbCommand cmd = connection.CreateCommand();
                cmd.CommandText = "SELECT * FROM Eleitor WHERE IDEleitor = @paramId";
                cmd.AddParameter("paramId", id);
                connection.Open();

                IDataReader reader = cmd.ExecuteReader();

                if (reader.Read())
                {
                    eleitor = this.CriarEleitor(reader);
                }

                return eleitor;
            }
        }
        public void Excluir(Eleitor eleitor)
        {
            if (Eleicao.Iniciou)
            {
                throw new Exception("As eleições iniciaram não é possivel fazer essa operação");
            }

            using (TransactionScope transacao = new TransactionScope())
            using (IDbConnection connection = new SqlConnection(connectionString))
            {
                IDbCommand cmd = connection.CreateCommand();
                cmd.CommandText = "DELETE FROM Eleitor WHERE IDEleitor = @paramId";
                cmd.AddParameter("paramId", eleitor.Id);

                connection.Open();
                cmd.ExecuteNonQuery();

                transacao.Complete();
            }
        }
        public void Editar(Eleitor item)
        {
            if (Eleicao.Iniciou)
            {
                throw new Exception("As eleições iniciaram não é possivel fazer essa operação");
            }

            if (!this.ValidarEleitor(item))
            {
                throw new Exception("Eleitor não pode ser editado");
            }

            using (TransactionScope transacao = new TransactionScope())
            using (IDbConnection connection = new SqlConnection(connectionString))
            {
                IDbCommand cmd = connection.CreateCommand();
                cmd.CommandText = "UPDATE Eleitor SET Nome=@paramNome, TituloEleitoral=@paramTitulo, RG=@paramRG, CPF=@paramCPF, DataNascimento=@paramData, "
                                  + "ZonaEleitoral=@paramZona, Secao=@paramSecao, Situacao=@paramSituacao, Votou=@paramVotou "
                                  + "WHERE idEleitor = @paramIdEleitor";

                cmd.AddParameter("paramNome", item.Nome);
                cmd.AddParameter("paramTitulo", item.TituloEleitor);
                cmd.AddParameter("paramRG", item.RG);
                cmd.AddParameter("paramCPF", item.CPF);
                cmd.AddParameter("paramData", item.DataNascimento);
                cmd.AddParameter("paramZona", item.ZonaEleitoral);
                cmd.AddParameter("paramSecao", item.Secao);
                cmd.AddParameter("paramSituacao", item.Situacao);
                cmd.AddParameter("paramVotou", item.Votou);
                cmd.AddParameter("paramIdEleitor", item.Id);

                connection.Open();
                cmd.ExecuteNonQuery();

                transacao.Complete();
            }
        }
        public void Inserir()
        {
            IEleitorRepositorio repositorio = new EleitorRepositorio();
            var servico = new EleitorServicoDominio(repositorio);

            var eleitor = new Eleitor()
            {
                Nome = "Inserir test",
                CPF = "2836432",
                RG = "126312362",
                TituloEleitor = "8642",
                DataNascimento = DateTime.Now,
                Secao = "2733",
                ZonaEleitoral = "N213",
                Situacao = 'A',
                Votou = 'N'
            };

            servico.Add(eleitor);
            Assert.IsTrue(servico.FindByName("Inserir t").Count > 0);
        }