public ActionResult Cep_inc(CepViewModel model, string action)
        {
            ViewBag.Error = "";
            if (action == "btnCepOK")
            {
                if (model.Cep == null || model.Cep.Length < 9)
                {
                    ViewBag.Error = "* Cep digitado inválido.";
                    return(View(model));
                }
            }
            if (action == "btnCepCancel")
            {
                model = new CepViewModel();
                return(View(model));
            }

            //if (model.Cidade_Codigo == 0) {
            //    model.Bairro_Codigo_New = 0;
            //    model.Bairro_Nome_New = "";
            //}

            int          _cep = Convert.ToInt32(Functions.RetornaNumero(model.Cep));
            Endereco_bll enderecoRepository = new Endereco_bll(_connection);


            List <string>     Lista_Tmp        = enderecoRepository.Retorna_CepDB_Logradouro(_cep);
            List <Logradouro> Lista_Logradouro = new List <Logradouro>();
            int s = 1;

            foreach (string item in Lista_Tmp)
            {
                Lista_Logradouro.Add(new Logradouro()
                {
                    Codlogradouro = s, Endereco = item.ToUpper()
                });
                s++;
            }
            ViewBag.Logradouro = new SelectList(Lista_Logradouro, "Codlogradouro", "Endereco");


            Cepdb _cepdb = null;

            if (model.Logradouro != null)
            {
                _cepdb = enderecoRepository.Retorna_CepDB(_cep, Lista_Logradouro[Convert.ToInt32(model.Logradouro) - 1].Endereco);
            }
            else
            {
                _cepdb = enderecoRepository.Retorna_CepDB(_cep);
            }

            if (_cepdb != null)
            {
                model.Uf     = _cepdb.Uf;
                model.NomeUf = enderecoRepository.Retorna_UfNome(_cepdb.Uf);
                if (_cepdb.Cidadecodigo > 0)
                {
                    model.Cidade_Codigo = _cepdb.Cidadecodigo;
                    model.Bairro_Codigo = _cepdb.Bairrocodigo;
                    model.Logradouro    = _cepdb.Logradouro.ToUpper();
                    model.Bairro_Nome   = enderecoRepository.Retorna_Bairro(_cepdb.Uf, _cepdb.Cidadecodigo, _cepdb.Bairrocodigo);
                    model.Cidade_Nome   = enderecoRepository.Retorna_Cidade(_cepdb.Uf, _cepdb.Cidadecodigo);
                }
            }

            Uf _uf = enderecoRepository.Retorna_Cep_Estado(_cep);

            if (_uf == null)
            {
                ViewBag.Error = "* Cep não existente.";
                model.Uf      = "";
                model.NomeUf  = "";
                return(View(model));
            }

            List <Cidade> Lista_Cidade = enderecoRepository.Lista_Cidade(_uf.Siglauf);

            ViewBag.Cidade = new SelectList(Lista_Cidade, "Codcidade", "Desccidade");

            List <Bairro> Lista_Bairro_New = null;

            if (model.Cidade_Codigo_New > 0)
            {
                Lista_Bairro_New   = enderecoRepository.Lista_Bairro(_uf.Siglauf, model.Cidade_Codigo_New);
                ViewBag.Bairro_New = new SelectList(Lista_Bairro_New, "Codbairro", "Descbairro");
            }
            else
            {
                if (model.Cidade_Codigo > 0)
                {
                    Lista_Bairro_New   = enderecoRepository.Lista_Bairro(_uf.Siglauf, model.Cidade_Codigo);
                    ViewBag.Bairro_New = new SelectList(Lista_Bairro_New, "Codbairro", "Descbairro");
                }
                else
                {
                    Lista_Bairro_New   = new List <Bairro>();
                    ViewBag.Bairro_New = new SelectList(Lista_Bairro_New, "Codbairro", "Descbairro");
                }
            }

            //if (!string.IsNullOrEmpty(model.Bairro_Nome_New)) {
            //    string _bairronew = model.Bairro_Nome_New.ToUpper();
            //    foreach (Bairro item in Lista_Bairro_New) {
            //        if (item.Descbairro.ToUpper() == model.Bairro_Nome_New.ToUpper()) {
            //            ViewBag.Error = "Bairro já cadastrado.";
            //            return View(model);
            //        }
            //    }
            //}

            int           _cidade      = model.Cidade_Codigo > 0 ? model.Cidade_Codigo : Lista_Cidade[0].Codcidade;
            List <Bairro> Lista_Bairro = enderecoRepository.Lista_Bairro(_uf.Siglauf, model.Cidade_Codigo);

            ViewBag.Bairro = new SelectList(Lista_Bairro, "Codbairro", "Descbairro");

            model.Uf     = _uf.Siglauf;
            model.NomeUf = _uf.Descuf;



            if (action == "btnValida")
            {
                if (model.Logradouro_New == null || model.Logradouro_New.Trim() == "")
                {
                    ViewBag.Error = "Digite o nome do logradouro.";
                    return(View(model));
                }
                if (model.Bairro_Codigo_New == 0)
                {
                    ViewBag.Error = "Selecione o bairro.";
                    return(View(model));
                }

                foreach (Logradouro rua in Lista_Logradouro)
                {
                    if (model.Logradouro_New.ToUpper() == rua.Endereco)
                    {
                        ViewBag.Error = "Logradouro já cadastrado para este Cep.";
                        return(View(model));
                    }
                }

                //Grava o novo Cep

                Cepdb _reg = new Cepdb()
                {
                    Cep          = _cep.ToString("00000000"),
                    Uf           = model.Uf,
                    Cidadecodigo = model.Cidade_Codigo_New == 0?model.Cidade_Codigo:model.Cidade_Codigo_New,
                    Bairrocodigo = model.Bairro_Codigo_New,
                    Logradouro   = model.Logradouro_New.ToUpper(),
                    Func         = Session["hashfunc"].ToString() == "S",
                    Userid       = Convert.ToInt32(Session["hashid"])
                };
                Exception ex = enderecoRepository.Incluir_CepDB(_reg);
                model = new CepViewModel();
                return(View(model));
            }

            if (model.Bairro_Nome_New != null && model.Bairro_Nome_New != "")
            {
                Bairro _bairro = new Bairro()
                {
                    Siglauf    = model.Uf,
                    Codcidade  = (short)model.Cidade_Codigo_New == 0?(short)_cidade:(short)model.Cidade_Codigo_New,
                    Descbairro = model.Bairro_Nome_New.ToUpper()
                };
                model.Bairro_Codigo_New = enderecoRepository.Incluir_bairro(_bairro);
                model.Bairro_Nome_New   = "";
                ViewBag.Error           = "";
                Lista_Bairro_New        = enderecoRepository.Lista_Bairro(model.Uf, model.Cidade_Codigo_New);
                ViewBag.Bairro_New      = new SelectList(Lista_Bairro_New, "Codbairro", "Descbairro");
                return(View(model));
            }


            return(View(model));
        }