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