public ActionResult Salvar(IFormCollection form) { try { string nome = form["nome"]; string telefone = form["telefone"]; string email = form["email"]; string logradouro = form["rua"]; string numero = form["numero"]; string bairro = form["bairro"]; string complemento = form["complemento"]; int cidade_codigo = int.Parse(form["cidade"]); CidadeModel cidade = null; if (cidade_codigo != 0) { cidade = (new CidadeModel()).Obter(cidade_codigo); } if (nome != "" && telefone != "" && email != "" && logradouro != "" && numero != "" && bairro != "" && cidade != null) { EnderecoModel endereco = new EnderecoModel() { Logradouro = logradouro, Numero = numero, Bairro = bairro, Complemento = complemento, CidadeCodigo = cidade.Codigo }; endereco.Salvar(); ClinicaModel clinica = new ClinicaModel() { Nome = nome, Email = email, Endereco = endereco.Codigo, Telefone = telefone }; clinica.Salvar(); } return(RedirectToAction(nameof(Index))); } catch { return(View()); } }
public IActionResult Salvar(IFormCollection form) { try { // Dados Pessoal string tipoUsuario = form["tipoUsuario"]; string nome = form["nome"]; string sobrenome = form["sobrenome"]; string cpf = form["cpf"]; DateTime dataNascimento = DateTime.Parse(form["dataNascimento"]); string telefone = form["telefone"]; string email = form["email"]; // Dados Endereço string rua = form["rua"]; string numero = form["numero"]; string complemento = form["complemento"]; string bairro = form["bairro"]; int cidade = int.Parse(form["cidade"]); if ( tipoUsuario != "" && nome != "" && sobrenome != "" && cpf != "" && dataNascimento != null && telefone != "" && email != "" && rua != "" && numero != "" && bairro != "" && cidade != 0 ) { PacienteModel pacienteTeste = null; pacienteTeste = (new PacienteModel()).LocalizarCPF(cpf); if (pacienteTeste != null) { throw new Exception("CPF já cadastrado em outro usuário"); } pacienteTeste = (new PacienteModel()).LocalizarEmail(cpf); if (pacienteTeste != null) { throw new Exception("CPF já cadastrado em outro usuário"); } //String senha = Senha.Gerar(); String senha = "abcd@123"; EnderecoModel endereco = new EnderecoModel(); endereco.CidadeCodigo = cidade; endereco.Logradouro = rua; endereco.Numero = numero; endereco.Complemento = complemento; endereco.Bairro = bairro; endereco.Salvar(); if (tipoUsuario == "paciente") { double coparticipacao = double.Parse(form["coparticipacao"]); if (coparticipacao != 0.0) { // Carrega os dados do objeto PacienteModel paciente = new PacienteModel() { Nome = nome, Sobrenome = sobrenome, Cpf = cpf, DataNascimento = dataNascimento, Telefone = telefone, Email = email, Senha = Hash.GetHashString(senha), EnderecoCodigo = endereco.Codigo }; paciente.Salvar(); } } else if (tipoUsuario == "especialista") { EspecialistaModel especialistaTeste = null; especialistaTeste = (new EspecialistaModel()).LocalizarCPF(cpf); if (especialistaTeste != null) { throw new Exception("CPF já cadastrado em outro usuário"); } especialistaTeste = (new EspecialistaModel()).LocalizarEmail(cpf); if (especialistaTeste != null) { throw new Exception("CPF já cadastrado em outro usuário"); } string crm = form["crm"]; List <EspecialidadeClinicaJsonModel> especialidadesClinicas = System.Text.Json.JsonSerializer.Deserialize <List <EspecialidadeClinicaJsonModel> >(form["especialidadesClinicas"]); if (crm != "" && especialidadesClinicas != null) { // Carrega objeto EspecialistaModel especialista = new EspecialistaModel() { Nome = nome, Sobrenome = sobrenome, Cpf = cpf, DataNascimento = dataNascimento, Telefone = telefone, Email = email, Senha = Hash.GetHashString(senha), EnderecoCodigo = endereco.Codigo }; especialista.Salvar(); // Percorre todas as uniões de clinicas e especialidades foreach (EspecialidadeClinicaJsonModel especialidadeClinica in especialidadesClinicas) { ClinicaModel clinica = (new ClinicaModel()).Obter(especialidadeClinica.clinica); EspecialidadeModel especialidade = (new EspecialidadeModel()).Obter(especialidadeClinica.especialidade); // Caso um dos modelos estiver vazio retorna um erro if (clinica == null) { throw new Exception("Clinica Inválida"); } if (especialidade == null) { throw new Exception("Clinica Inválida"); } // Salva o vinculo Especialista, Especialidade e Clinica especialista.SalvarEspecialidadesClinicas(especialidade, clinica); } } } else if (tipoUsuario == "secretario") { SecretarioModel secretarioTeste = null; secretarioTeste = (new SecretarioModel()).LocalizarCPF(cpf); if (secretarioTeste != null) { throw new Exception("CPF já cadastrado em outro usuário"); } secretarioTeste = (new SecretarioModel()).LocalizarEmail(cpf); if (secretarioTeste != null) { throw new Exception("CPF já cadastrado em outro usuário"); } SecretarioModel secretario = new SecretarioModel() { Nome = nome, Sobrenome = sobrenome, Cpf = cpf, DataNascimento = dataNascimento, Telefone = telefone, Email = email, Senha = Hash.GetHashString(senha), EnderecoCodigo = endereco.Codigo }; secretario.Salvar(); } else if (tipoUsuario == "administrador") { AdministradorModel administradorTeste = null; administradorTeste = (new AdministradorModel()).LocalizarEmail(cpf); if (administradorTeste != null) { throw new Exception("CPF já cadastrado em outro usuário"); } AdministradorModel administrador = new AdministradorModel() { Nome = nome, Sobrenome = sobrenome, Email = email, Senha = Hash.GetHashString(senha), }; administrador.Salvar(); } else { throw new Exception("Tipo de usuário não encontrado"); } // Aqui segue o Fluxo normal e envia uma mensagem de e-mail // com as informações de login } else { throw new Exception("Preencha todos os campos corretamente."); } } catch (Exception ex) { ViewData["erro"] = "Falha ao salvar os dados" + ex.Message; return(View("Cadastrar")); } ViewData["sucesso"] = "Sucesso ao cadastrar usuário"; return(View("../Administrador/Index")); }