private bool FuValidaAgendaTemp(HorarioTemp model) { if (model.TempoDescansoFinal < model.TempoDescansoInicial) { ModelState.AddModelError("", "O tempo de descanso final não pode ser menor que o tempo de descanso inicial"); return false; } if (model.TempoDescansoFinal <= model.TempoDescansoInicial) { ModelState.AddModelError("", "O tempo de descanso final não pode ser menor que o tempo de descanso inicial"); return false; } if (model.TempoDescansoInicial < model.HorarioIni) { ModelState.AddModelError("", "O tempo de descanso inicial não pode ser menor que o horário inicial"); return false; } var minCons = new TimeSpan(0, 0, 10, 0); if (model.TempoConsulta < minCons) { ModelState.AddModelError("", "O tempo da consulta deve ser igual ou superior a 10 minutos"); return false; } if (model.HorarioFim <= model.HorarioIni) { ModelState.AddModelError("", "O horário inicial não pode ser maior ou igual ao horário final"); return false; } model.MedicoUserId = _unitOfWork.UsuarioRepositorio.GetIdByUserName(User.Identity.Name); if ( _unitOfWork.HorarioTempRepositorio.Get( m => m.MedicoUserId == model.MedicoUserId && model.Data == m.Data).Any()) { ModelState.AddModelError("", "Já existe uma agenda temporária para a data informada"); return false; } return true; }
public ActionResult NovaAgendaTemp(HorarioTemp model) { if (model.MedicoUserId == 0 && Roles.GetRolesForUser(User.Identity.Name)[0].ToString(CultureInfo.InvariantCulture) == "Medico") { model.MedicoUserId = _unitOfWork.UsuarioRepositorio.GetIdByUserName(User.Identity.Name); } if (!FuValidaAgendaTemp(model)) { return View(model); } if (ModelState.IsValid) { try { _unitOfWork.HorarioTempRepositorio.Insert(model); _unitOfWork.Save(); Session.Add("Mensagem", "Agenda temporária adiciondada com sucesso"); return RedirectToAction("NovaAgendaTemp"); } catch (Exception) { ModelState.AddModelError("", "Não foi possível adicionar a nova agenda temporária"); } finally { _unitOfWork.Dispose(); } } return View(model); }