public static Cliente GetOne(int pId)
        {
            StringBuilder sql = new StringBuilder();
            Cliente cliente = new Cliente();

            sql.Append("SELECT * ");
            sql.Append("FROM Cliente ");
            sql.Append("WHERE IdCliente = " + pId);

            SqlDataReader dr = SqlConn.Get(sql.ToString());

            while (dr.Read())
            {
                cliente.IdCliente = (int)dr["IdCliente"];
                cliente.Nome = (string)dr["Nome"];
                cliente.Telefone = (string)dr["Telefone"];
                cliente.Endereco = dr.IsDBNull(dr.GetOrdinal("Endereco")) ? "" : (string)dr["Endereco"];
                cliente.Bairro = dr.IsDBNull(dr.GetOrdinal("Bairro")) ? "" : (string)dr["Bairro"];
                cliente.Cidade = dr.IsDBNull(dr.GetOrdinal("Cidade")) ? "" : (string)dr["Cidade"];
                cliente.Estado = dr.IsDBNull(dr.GetOrdinal("Estado")) ? "" : (string)dr["Estado"];
                cliente.CPF_CNPJ = dr.IsDBNull(dr.GetOrdinal("CPF_CNPJ")) ? "" : (string)dr["CPF_CNPJ"];
            }
            dr.Close();
            return cliente;
        }
 public ActionResult DeleteCliente(Cliente pCliente, int pId)
 {
     try
     {
         ClienteRepository exclui = new ClienteRepository();
         exclui.Delete(pId);
         return RedirectToAction("ListClientes").ComMensagemDeSucesso("Cliente excluído com sucesso!");
     }
     catch
     {
         return RedirectToAction("ListClientes").ComMensagemDeErro("Cliente não pode ser excluido! Existe pendências no sistema.");
     }
 }
        public HttpResponseMessage Post([FromBody]Cliente pCliente)
        {
            //if (!ModelState.IsValid)
            //{
            //    return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            //}

            try
            {

                ClienteRepository create = new ClienteRepository();

                //for (int x = 0; pClientes.Count() > x; x++)
                //{

                    Cliente cliente = new Cliente();

                    cliente.Nome = pCliente.Nome;
                    cliente.Telefone = pCliente.Telefone;
                    cliente.Endereco = pCliente.Endereco;
                    cliente.Bairro = pCliente.Bairro;
                    cliente.Cidade = pCliente.Cidade;
                    cliente.Estado = pCliente.Estado;
                    cliente.CPF_CNPJ = pCliente.CPF_CNPJ;

                    Cliente rCliente = ClienteRepository.Verificacao(pCliente);

                    if (rCliente != null)
                    {
                        create.Create(cliente);
                    }

                //}
                return Request.CreateResponse(HttpStatusCode.OK);
            }
            catch (ArgumentException ex)
            {
                return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
            }
        }
        public ActionResult CreateCliente(Cliente pCliente)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    ViewBag.Estado = new SelectList(new Cliente().ListaEstados(), "Estado", "Estado", pCliente.Estado);

                    ClienteRepository create = new ClienteRepository();
                    create.Create(pCliente);
                    return RedirectToAction("ListClientes").ComMensagemDeSucesso("Cliente cadastrado com sucesso!");
                }
                else
                {
                    return View();
                }
            }
            catch
            {
                return RedirectToAction("ListClientes").ComMensagemDeErro("Preencha todos os campos!");
                throw;
            }
        }
        public void Update(Cliente pCliente)
        {
            StringBuilder sql = new StringBuilder();
            SqlCommand cmd = new SqlCommand();

            sql.Append("UPDATE Cliente SET Nome=@Nome, Telefone=@Telefone, Endereco=@Endereco, Bairro=@Bairro, Cidade=@Cidade, Estado=@Estado, CPF_CNPJ=@CPF_CNPJ");
            sql.Append(" WHERE IdCliente = " + pCliente.IdCliente);

            cmd.Parameters.AddWithValue("@Nome", pCliente.Nome);
            cmd.Parameters.AddWithValue("@Telefone", pCliente.Telefone);

            if (!string.IsNullOrEmpty(pCliente.Endereco))
                cmd.Parameters.Add("@Endereco", SqlString.Null).Value = pCliente.Endereco;
            else
                cmd.Parameters.Add("@Endereco", SqlString.Null);

            if (!string.IsNullOrEmpty(pCliente.Bairro))
                cmd.Parameters.Add("@Bairro", SqlString.Null).Value = pCliente.Bairro;
            else
                cmd.Parameters.Add("@Bairro", SqlString.Null);

            if (!string.IsNullOrEmpty(pCliente.Cidade))
                cmd.Parameters.Add("@Cidade", SqlString.Null).Value = pCliente.Cidade;
            else
                cmd.Parameters.Add("@Cidade", SqlString.Null);

            if (!string.IsNullOrEmpty(pCliente.Estado))
                cmd.Parameters.Add("@Estado", SqlString.Null).Value = pCliente.Estado;
            else
                cmd.Parameters.Add("@Estado", SqlString.Null);

            if (!string.IsNullOrEmpty(pCliente.CPF_CNPJ))
                cmd.Parameters.Add("@CPF_CNPJ", SqlString.Null).Value = pCliente.CPF_CNPJ;
            else
                cmd.Parameters.Add("@CPF_CNPJ", SqlString.Null);

            cmd.CommandText = sql.ToString();
            SqlConn.CommandPersist(cmd);
        }
        public void Create(Cliente pCliente)
        {
            StringBuilder sql = new StringBuilder();
            SqlCommand cmd = new SqlCommand();

            sql.Append("INSERT INTO Cliente (Nome, Telefone, Endereco, Bairro, Cidade, Estado, CPF_CNPJ)");
            sql.Append("VALUES(@Nome, @Telefone, @Endereco, @Bairro, @Cidade, @Estado, @CPF_CNPJ)");

            cmd.Parameters.AddWithValue("@Nome", (pCliente.Nome));
            cmd.Parameters.AddWithValue("@Telefone", pCliente.Telefone);

            if (!string.IsNullOrEmpty(pCliente.Endereco))
                cmd.Parameters.Add("@Endereco", SqlString.Null).Value = pCliente.Endereco;
            else
                cmd.Parameters.Add("@Endereco", SqlString.Null);

            if (!string.IsNullOrEmpty(pCliente.Bairro))
                cmd.Parameters.Add("@Bairro", SqlString.Null).Value = pCliente.Bairro;
            else
                cmd.Parameters.Add("@Bairro", SqlString.Null);

            if (!string.IsNullOrEmpty(pCliente.Cidade))
                cmd.Parameters.Add("@Cidade", SqlString.Null).Value = pCliente.Cidade;
            else
                cmd.Parameters.Add("@Cidade", SqlString.Null);

            if (!string.IsNullOrEmpty(pCliente.Estado))
                cmd.Parameters.Add("@Estado", SqlString.Null).Value = pCliente.Estado;
            else
                cmd.Parameters.Add("@Estado", SqlString.Null);

            if (!string.IsNullOrEmpty(pCliente.CPF_CNPJ))
                cmd.Parameters.Add("@CPF_CNPJ", SqlString.Null).Value = pCliente.CPF_CNPJ;
            else
                cmd.Parameters.Add("@CPF_CNPJ", SqlString.Null);

            cmd.CommandText = sql.ToString();
            SqlConn.CommandPersist(cmd);
        }
        public static Cliente Verificacao(Cliente pCliente)
        {
            StringBuilder sql = new StringBuilder();
            Cliente cliente = new Cliente();
            sql.Append("SELECT * ");
            sql.Append("FROM Cliente ");
            sql.Append("WHERE Nome like '%" + pCliente.Nome.Trim() + "%'");

            SqlDataReader dr = SqlConn.Get(sql.ToString());

            while (dr.Read())
            {
                cliente = new Cliente
                    {
                        //IdCliente = (int)dr["IdCliente"],
                        Nome = (string)dr["Nome"],
                        Telefone = (string)dr["Telefone"],
                        Endereco = dr.IsDBNull(dr.GetOrdinal("Endereco")) ? "" : (string)dr["Endereco"],
                        Bairro = dr.IsDBNull(dr.GetOrdinal("Bairro")) ? "" : (string)dr["Bairro"],
                        Cidade = dr.IsDBNull(dr.GetOrdinal("Cidade")) ? "" : (string)dr["Cidade"],
                        Estado = dr.IsDBNull(dr.GetOrdinal("Estado")) ? "" : (string)dr["Estado"],
                        CPF_CNPJ = dr.IsDBNull(dr.GetOrdinal("CPF_CNPJ")) ? "" : (string)dr["CPF_CNPJ"]
                    };
            }
            dr.Close();
            if (pCliente.Nome == cliente.Nome && pCliente.Telefone == cliente.Telefone)
            {
                return null;
            }
            else
            {
                return cliente;
            }
        }
        public ActionResult EditCliente(Cliente pCliente)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    ViewBag.Estado = new SelectList(new Cliente().ListaEstados(), "Estado", "Estado", pCliente.Estado);
                    ClienteRepository edit = new ClienteRepository();
                    edit.Update(pCliente);
                    return RedirectToAction("ListClientes").ComMensagemDeSucesso("Cliente editado com sucesso!");
                }

                return View("EditCliente");
            }
            catch
            {
                throw;
            }
        }
        // PUT: api/Cliente/5
        public HttpResponseMessage Put(int pId, Cliente pCliente)
        {
            if (!ModelState.IsValid)
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            }

            if (pId != pCliente.IdCliente)
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }

            try
            {
                ClienteRepository update = new ClienteRepository();
                update.Update(pCliente);
                return Request.CreateResponse(HttpStatusCode.OK);
            }
            catch (ArgumentException ex)
            {
                return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
            }
        }