public PacienteCadastrarViewModel ObterPacienteParaRegistrarConsulta(string id)
        {
            var paciente = this.pacienteRepository.BuscarPacientePorId(new Guid(id));

            if (paciente == null)
            {
                return(null);
            }

            PacienteCadastrarViewModel p = new PacienteCadastrarViewModel(paciente.Nome, paciente.NomeSocial, paciente.DataNascimento, paciente.Sexo, paciente.Cpf, paciente.Rg, paciente.Telefone, paciente.Email, new EnderecoViewModel(paciente.Endereco.Cep, paciente.Endereco.Logradouro, paciente.Endereco.Numero, paciente.Endereco.Complemento, paciente.Endereco.Bairro, paciente.Endereco.Localidade, paciente.Endereco.Uf));

            return(p);
        }
        public Mensagem CadastrarPaciente(PacienteCadastrarViewModel pacienteCadastrarViewModel)
        {
            if (!Regex.IsMatch(pacienteCadastrarViewModel.Cpf, cpfComMascara))
            {
                if (Regex.IsMatch(pacienteCadastrarViewModel.Cpf, cpfSemMascara))
                {
                    pacienteCadastrarViewModel.Cpf = pacienteCadastrarViewModel.Cpf.Substring(0, 3) + "." + pacienteCadastrarViewModel.Cpf.Substring(3, 3) + "." + pacienteCadastrarViewModel.Cpf.Substring(6, 3) + "-" + pacienteCadastrarViewModel.Cpf.Substring(9, 2);
                }
                else
                {
                    return(new Mensagem(0, "CPF não possui o formato correto!"));
                }
            }

            if (!Regex.IsMatch(pacienteCadastrarViewModel.Rg, rgComMascara))
            {
                if (Regex.IsMatch(pacienteCadastrarViewModel.Rg, rgSemMascara))
                {
                    pacienteCadastrarViewModel.Rg = pacienteCadastrarViewModel.Rg.Substring(0, 2) + "." + pacienteCadastrarViewModel.Rg.Substring(2, 3) + "." + pacienteCadastrarViewModel.Rg.Substring(5, 3) + "-" + pacienteCadastrarViewModel.Rg.Substring(8);
                }
                else
                {
                    return(new Mensagem(0, "RG não possui o formato correto!"));
                }
            }

            if (!Regex.IsMatch(pacienteCadastrarViewModel.Telefone, celularComMascara))
            {
                if (Regex.IsMatch(pacienteCadastrarViewModel.Telefone, celularSemMascara))
                {
                    pacienteCadastrarViewModel.Telefone = "(" + pacienteCadastrarViewModel.Telefone.Substring(0, 2) + ")" + pacienteCadastrarViewModel.Telefone.Substring(2, 5) + "-" + pacienteCadastrarViewModel.Telefone.Substring(7);
                }
                else
                {
                    return(new Mensagem(0, "Telefone não possui o formato correto!"));
                }
            }

            if (!Regex.IsMatch(pacienteCadastrarViewModel.Endereco.Cep, cepComMascara))
            {
                if (Regex.IsMatch(pacienteCadastrarViewModel.Endereco.Cep, cepSemMascara))
                {
                    pacienteCadastrarViewModel.Endereco.Cep = pacienteCadastrarViewModel.Endereco.Cep.Substring(0, 5) + "-" + pacienteCadastrarViewModel.Endereco.Cep.Substring(5);
                }
                else
                {
                    return(new Mensagem(0, "CEP não possui o formato correto!"));
                }
            }

            if (this.pacienteRepository.BuscarPacientePorCpf(pacienteCadastrarViewModel.Cpf) != null)
            {
                return(new Mensagem(0, "Já existe um paciente cadastrado com este CPF!"));
            }

            if (this.pacienteRepository.BuscarPacientePorRg(pacienteCadastrarViewModel.Rg) != null)
            {
                return(new Mensagem(0, "Já existe um paciente cadastrado com esse RG!"));
            }

            if (!(pacienteCadastrarViewModel.DataNascimento <= DateTime.Now))
            {
                return(new Mensagem(0, "A data de nascimento não pode ser uma data que ainda não ocorreu!"));
            }

            bool     resultado = true;
            Endereco endereco  = new Endereco(pacienteCadastrarViewModel.Endereco.Cep, pacienteCadastrarViewModel.Endereco.Logradouro, pacienteCadastrarViewModel.Endereco.Numero, pacienteCadastrarViewModel.Endereco.Complemento, pacienteCadastrarViewModel.Endereco.Bairro, pacienteCadastrarViewModel.Endereco.Localidade, pacienteCadastrarViewModel.Endereco.Uf);
            Guid     id        = this.enderecoRepository.BuscaIdEndereco(endereco);

            if (id == Guid.Empty)
            {
                resultado = this.enderecoRepository.CadastrarEndereco(endereco);
                id        = this.enderecoRepository.BuscaIdEndereco(endereco);
            }

            if (!resultado)
            {
                return(new Mensagem(0, "Falha ao cadastrar paciente!"));
            }

            Paciente paciente = new Paciente(pacienteCadastrarViewModel.Nome, pacienteCadastrarViewModel.NomeSocial, pacienteCadastrarViewModel.DataNascimento, pacienteCadastrarViewModel.Sexo, pacienteCadastrarViewModel.Cpf, pacienteCadastrarViewModel.Rg, pacienteCadastrarViewModel.Telefone, pacienteCadastrarViewModel.Email, id);

            resultado = this.pacienteRepository.CadastrarPaciente(paciente);

            if (!resultado)
            {
                return(new Mensagem(0, "Falha ao cadastrar paciente!"));
            }
            return(new Mensagem(1, "Paciente cadastrado com sucesso!"));
        }
Exemplo n.º 3
0
 public Mensagem CadastrarPaciente([FromBody] PacienteCadastrarViewModel pacienteCadastrarViewModel)
 {
     return(this.pacienteService.CadastrarPaciente(pacienteCadastrarViewModel));
 }