예제 #1
0
        public ActionResult Confirmar(FormCollection form)
        {
            if (!StringExt.IsNullOrEmpty(form["txtNome"], form["txtCpf"]))
            {
                string nome = form["txtNome"].RemoveSpaces();
                string cpf  = form["txtCpf"].Replace(".", "").Replace("-", "");

                Visitante visitante = PessoaFisica.ListarPorCpf(cpf)?.Usuario.FirstOrDefault(u => u.Visitante.FirstOrDefault() != null)?.Visitante.First();

                if (visitante == null)
                {
                    string       matricula = $"VIS{Visitante.ProxCodigo.ToString("00000")}";
                    PessoaFisica pf        = PessoaFisica.ListarPorCpf(cpf);
                    if (pf == null)
                    {
                        int codPessoa = Pessoa.Inserir(new Pessoa()
                        {
                            TipoPessoa = "F"
                        });
                        pf           = new PessoaFisica();
                        pf.CodPessoa = codPessoa;
                        pf.Nome      = nome;
                        pf.Cpf       = cpf;
                        pf.Categoria.Add(Categoria.ListarPorCodigo(4));

                        PessoaFisica.Inserir(pf);
                    }

                    var usuario = new Usuario();
                    usuario.Matricula    = matricula;
                    usuario.PessoaFisica = pf;
                    usuario.CodCategoria = Categoria.VISITANTE;
                    string senha = Sistema.GerarSenhaPadrao(usuario);
                    usuario.Senha = Criptografia.RetornarHash(senha);

                    Usuario.Inserir(usuario);

                    visitante         = new Visitante();
                    visitante.Usuario = usuario;

                    Visitante.Inserir(visitante);
                }

                if (!String.IsNullOrEmpty(form["txtDtNascimento"]) && !visitante.Usuario.PessoaFisica.DtNascimento.HasValue)
                {
                    visitante.Usuario.PessoaFisica.DtNascimento = DateTime.Parse(form["txtDtNascimento"], new CultureInfo("pt-BR"));
                }
                if (!String.IsNullOrEmpty(form["ddlSexo"]) && String.IsNullOrEmpty(visitante.Usuario.PessoaFisica.Sexo))
                {
                    visitante.Usuario.PessoaFisica.Sexo = form["ddlSexo"];
                }

                if (String.IsNullOrEmpty(form["chkDtValidade"]))
                {
                    visitante.DtValidade = null;
                }
                else
                {
                    visitante.DtValidade = DateTime.Parse(form["txtDtValidade"] + " 23:59:59", new CultureInfo("pt-BR"));
                }

                Repositorio.Commit();

                return(View(visitante));
            }
            return(RedirectToAction("Cadastrar"));
        }