public Mensagem AtualizarPaciente(PacienteListarEditarViewModel pacienteListarEditarViewModel) { Paciente pacienteRetorno = null; if (!Regex.IsMatch(pacienteListarEditarViewModel.Cpf, cpfComMascara)) { if (Regex.IsMatch(pacienteListarEditarViewModel.Cpf, cpfSemMascara)) { pacienteListarEditarViewModel.Cpf = pacienteListarEditarViewModel.Cpf.Substring(0, 3) + "." + pacienteListarEditarViewModel.Cpf.Substring(3, 3) + "." + pacienteListarEditarViewModel.Cpf.Substring(6, 3) + "-" + pacienteListarEditarViewModel.Cpf.Substring(9, 2); } else { return(new Mensagem(0, "CPF não possui o formato correto!")); } } if (!Regex.IsMatch(pacienteListarEditarViewModel.Rg, rgComMascara)) { if (Regex.IsMatch(pacienteListarEditarViewModel.Rg, rgSemMascara)) { pacienteListarEditarViewModel.Rg = pacienteListarEditarViewModel.Rg.Substring(0, 2) + "." + pacienteListarEditarViewModel.Rg.Substring(2, 3) + "." + pacienteListarEditarViewModel.Rg.Substring(5, 3) + "-" + pacienteListarEditarViewModel.Rg.Substring(8); } else { return(new Mensagem(0, "RG não possui o formato correto!")); } } if (!Regex.IsMatch(pacienteListarEditarViewModel.Telefone, celularComMascara)) { if (Regex.IsMatch(pacienteListarEditarViewModel.Telefone, celularSemMascara)) { pacienteListarEditarViewModel.Telefone = "(" + pacienteListarEditarViewModel.Telefone.Substring(0, 2) + ")" + pacienteListarEditarViewModel.Telefone.Substring(2, 5) + "-" + pacienteListarEditarViewModel.Telefone.Substring(7); } else { return(new Mensagem(0, "Telefone não possui o formato correto!")); } } if (!Regex.IsMatch(pacienteListarEditarViewModel.Endereco.Cep, cepComMascara)) { if (Regex.IsMatch(pacienteListarEditarViewModel.Endereco.Cep, cepSemMascara)) { pacienteListarEditarViewModel.Endereco.Cep = pacienteListarEditarViewModel.Endereco.Cep.Substring(0, 5) + "-" + pacienteListarEditarViewModel.Endereco.Cep.Substring(5); } else { return(new Mensagem(0, "CEP não possui o formato correto!")); } } pacienteRetorno = this.pacienteRepository.BuscarPacientePorCpf(pacienteListarEditarViewModel.Cpf); if (pacienteRetorno != null && !pacienteRetorno.IdPaciente.ToString().Equals(pacienteListarEditarViewModel.Id)) { return(new Mensagem(0, "Já existe um paciente cadastrado com este CPF!")); } pacienteRetorno = this.pacienteRepository.BuscarPacientePorRg(pacienteListarEditarViewModel.Rg); if (pacienteRetorno != null && !pacienteRetorno.IdPaciente.ToString().Equals(pacienteListarEditarViewModel.Id)) { return(new Mensagem(0, "Já existe um paciente cadastrado com esse RG!")); } if (!(pacienteListarEditarViewModel.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(pacienteListarEditarViewModel.Endereco.Cep, pacienteListarEditarViewModel.Endereco.Logradouro, pacienteListarEditarViewModel.Endereco.Numero, pacienteListarEditarViewModel.Endereco.Complemento, pacienteListarEditarViewModel.Endereco.Bairro, pacienteListarEditarViewModel.Endereco.Localidade, pacienteListarEditarViewModel.Endereco.Uf); Guid id = this.enderecoRepository.BuscaIdEndereco(endereco); if (id == Guid.Empty) { // Se não existe este endereço cadastrado, verifica se alguma entidade depende do endereço atual do paciente. Caso positivo, um novo endereço é cadastrado. // Caso contrário, o endereço novo é atualizado sobre o endereço antigo int quantidade = this.enderecoRepository.QuantidadeReferenciasEndereco(new Guid(pacienteListarEditarViewModel.Endereco.Id)); if (quantidade > 1) { resultado = this.enderecoRepository.CadastrarEndereco(endereco); id = this.enderecoRepository.BuscaIdEndereco(endereco); } else { endereco.IdEndereco = new Guid(pacienteListarEditarViewModel.Endereco.Id); resultado = this.enderecoRepository.AtualizarEndereco(endereco); id = endereco.IdEndereco; } } if (!resultado) { return(new Mensagem(0, "Falha ao atualizar paciente!")); } Paciente paciente = new Paciente(new Guid(pacienteListarEditarViewModel.Id), pacienteListarEditarViewModel.Nome, pacienteListarEditarViewModel.NomeSocial, pacienteListarEditarViewModel.DataNascimento, pacienteListarEditarViewModel.Sexo, pacienteListarEditarViewModel.Cpf, pacienteListarEditarViewModel.Rg, pacienteListarEditarViewModel.Telefone, pacienteListarEditarViewModel.Email, id); resultado = this.pacienteRepository.AtualizarPaciente(paciente); if (!resultado) { return(new Mensagem(0, "Falha ao atualizar paciente!")); } return(new Mensagem(1, "Paciente atualizado com sucesso!")); }
public Mensagem AtualizarPaciente([FromBody] PacienteListarEditarViewModel pacienteListarEditarViewModel) { return(this.pacienteService.AtualizarPaciente(pacienteListarEditarViewModel)); }