public Agendamento AlterarAgendamento(Agendamento agend) { try { if (agend == null) { throw new Exception("Não é possivel alterar um agendamento vazio!"); } else if (agend.IdAgendamento != 0) { // está mantendo o produto "p" em memória e não está buscando no banco var oldAgendamento = repository.Find(agend.IdAgendamento); //Busca se existe algum agendamento cadastrado com mesmo horario if (agend.Horario != oldAgendamento.Horario) { var horario = repository.Get(x => x.Horario == agend.Horario).FirstOrDefault(); if (horario != null) { throw new Exception("Não é possivel alterar um agendamento com um horario duplicado!"); } } else { repository.Update(agend); return(agend); } } return(null); } catch (Exception ex) { throw ex; } }