public Paciente AlterarPaciente(Paciente p) { try { if (p == null) { throw new Exception("Não é possivel alterar o Paciente vazio"); } else if (p.IdPaciente != 0) { //mantendo o Paciente na memoria, sem necessidade de buscar no banco var guardarPaciente = repository.Find(p.IdPaciente); //Vendo se exixte algum Paciente com codigo igual no sistema if (p.Codigo != guardarPaciente.Codigo) { var codigo = repository.Get(x => x.Codigo == p.Codigo).FirstOrDefault(); if (codigo != null) { throw new Exception("Não e possivel alterar o paciente com o Codigo Duplicado"); } } //Vendo se exixte algum Paciente com codigo igual no sistema else if (p.CPF != guardarPaciente.CPF) { var cpf = repository.Get(x => x.CPF == p.CPF).FirstOrDefault(); if (cpf != null) { throw new Exception("Não e possivel alterar o paciente com o CPF Duplicado"); } } else { repository.UpdatePaciente(p); return(p); } } return(null); } catch (Exception ex) { throw ex; } }