public ActionResult Create(Consulta consulta)
        {
            ViewBag.Title = tituloCadastro;
            try
            {
                using (var db = new ClinicaEntities())
                {

                    var Consultas = db.Consulta.Where(i => i.Data == consulta.Data)
                                               .Where(i => i.MedicoId == consulta.MedicoId)
                                               .Where(i => i.Status == (int)Status.Agendada)
                                               .OrderBy(i => i.Hora);
                    foreach (var item in Consultas.ToList())
                    {

                        TimeSpan hora30MinDepois = item.Hora.Add(new TimeSpan(0, 30, 0));

                        /* Se for menor que a (hora+30min) e maior que a hora */
                        if ((consulta.Hora.CompareTo(hora30MinDepois)<=0)&&
                            (consulta.Hora.CompareTo(item.Hora)>=0))
                        {
                            ModelState.AddModelError("Hora", "Médico com consulta agendada as " + item.Hora.ToString() + " horas, é necessario dar intervalo de 30 minutos.");
                            return View(consulta);
                        }
                    }
                    consulta.Status = (int)Status.Agendada;
                    db.Consulta.Add(consulta);
                    db.SaveChanges();
                }

                return RedirectToAction("Index");
            }
            catch (Exception e)
            {
                ViewBag.Error = e;
                return View("Error");
            }
        }
        public ActionResult DesmarcarConsulta(int id, Consulta consulta)
        {
            ViewBag.Title = tituloCadastro;
            try
            {
                using (var db = new ClinicaEntities())
                {

                    /* Se for desmarcada antes da Data prevista a Consulta será excluída. */
                    if (consulta.Data >= DateTime.Now)
                    {
                        return View("Delete", db.Consulta.Find(consulta.ConsultaId));

                    }
                    /* Caso contrario será marcada como não comparecimento */
                    else
                    {
                        consulta.Status = (int)Status.Nao_Comparecido;
                        db.Entry(consulta).State = System.Data.EntityState.Modified;
                        db.SaveChanges();
                    }

                    return RedirectToAction("Index");
                }
            }
            catch (Exception e)
            {
                ViewBag.Error = e;
                return View("Error");
            }
        }
 public ActionResult RealizarConsulta(int id, Consulta consulta)
 {
     ViewBag.Title = tituloCadastro;
     try
     {
         using (var db = new ClinicaEntities())
         {
             consulta.Status = (int)Status.Realizada;
             db.Entry(consulta).State = System.Data.EntityState.Modified;
             db.SaveChanges();
             return RedirectToAction("Index");
         }
     }
     catch (Exception e)
     {
         ViewBag.Error = e;
         return View("Error");
     }
 }
 public ActionResult Delete(int id, Consulta consulta)
 {
     ViewBag.Title = tituloCadastro;
     try
     {
         using (var db = new ClinicaEntities())
         {
             db.Entry(consulta).State = System.Data.EntityState.Deleted;
             db.SaveChanges();
         }
         return RedirectToAction("Index");
     }
     catch (Exception e)
     {
         ViewBag.Error = e;
         return View("Error");
     }
 }