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")); }