public ActionResult RegistrarAgendamento([Bind(Include = "IdAgendamento,DataAgendamento,HorarioAgendamento, IdUsuario, IdHemobanco")] Agendamento agendamento, int?hemobancos) { ViewBag.Hemobancos = new MultiSelectList(HemobancoDAO.ListarTodosHemobancos(), "IdHemobanco", "NomeFantasiaHemobanco"); agendamento.HemobancoAgendamento = HemobancoDAO.BuscarHemobancoPorID(hemobancos); agendamento.UsuarioAgendamento = UsuarioDAO.BuscarUsuarioPorId(Sessao.retornarUsuario()); int idade = DateTime.Today.Year - agendamento.UsuarioAgendamento.DataNascimentoUsuario.Year; if (agendamento.UsuarioAgendamento.PesoUsuario < 50) { ModelState.AddModelError("", "Seu peso é incompatível!"); } else if (idade < 16 || idade > 69) { ModelState.AddModelError("", "Sua idade é incompatível!"); } else if (agendamento.DataAgendamento < DateTime.Today) { ModelState.AddModelError("", "A data informada é inválida!"); } Agendamento agendamentoPesq = new Agendamento(); // Buscar último agendamento realizado agendamentoPesq = AgendamentoDAO.UltimoAgendamento(Sessao.retornarUsuario()); if (agendamentoPesq != null) { // Data agendamento - última doação int dias = UsuarioDAO.CalculoDiasDoacao(agendamentoPesq.DataAgendamento, agendamento.DataAgendamento); if (dias > 0 && dias != 3) { if (agendamento.UsuarioAgendamento.SexoUsuario.Equals("Feminino") && dias < 90) { ModelState.AddModelError("", "Sua última doação é inferior a 90 dias!"); } else if (agendamento.UsuarioAgendamento.SexoUsuario.Equals("Masculino") && dias < 60) { ModelState.AddModelError("", "Sua última doação é inferior a 60 dias!"); } } } if (ModelState.IsValid) { if (AgendamentoDAO.BuscarAgendamentoIgual(agendamento) == false) { if (AgendamentoDAO.CadastrarAgendamento(agendamento)) { return(RedirectToAction("Agendamentos", "Usuario")); } ModelState.AddModelError("", "Erro ao registrar agendamento!"); return(View(agendamento)); } ModelState.AddModelError("", "Esse horário não está disponível!"); return(View(agendamento)); } return(View(agendamento)); }