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