public ActionResult DesativarPost(int id) { var ctx = new ApplicationDbContext(); var medico = ctx.Medicos.Find(id); var consultas = from c in ctx.Consultas where c.idMedico == id select c; var proximas = consultas.ToList().Where(c => { var dataConsulta = DateTime.Parse(c.dataConsulta + " " + c.horarioConsulta, new CultureInfo("pt-BR")); return DateTime.Now < dataConsulta; }); if (proximas.Count() > 0) { ModelState.AddModelError("", "Não é possível desativar este médico pois ele possui consultas futuras."); } if (!ModelState.IsValid) { return View(medico); } medico.Ativo = false; ctx.SaveChanges(); return RedirectToAction("Index", new { msg = "Médico desativado com sucesso" }); }
public ActionResult AgendamentoConsulta(FormCollection f, string returnUrl) { var dataAgendamento = Request.Form["diaAgenda"]; var horaAgendamento = Request.Form["hrAgenda"]; var descEspecialidade = Request.Form["idEspecAgenda"]; var descMedico = Request.Form["idMedicAgenda"]; var CRM = string.Concat(descMedico.TakeWhile((c) => c != '-')); var usuario = (int)Session["UsuarioLogado"]; var ctx = new ApplicationDbContext(); var idEspec = (from u in ctx.Especialidades where u.NomeEspecialidade == descEspecialidade select u.IdEspecialidade).FirstOrDefault(); var idMedic = (from u in ctx.Medicos where u.CRM.ToString() == CRM select u.IdMedico).FirstOrDefault(); if (dataAgendamento != null) { var ctx2 = new ApplicationDbContext(); var cons = new Consulta() { idPaciente = usuario, idEspecialidade = idEspec, idMedico = idMedic, dataAgendamento = DateTime.Now.ToString("dd/MM/yyyy"), dataConsulta = dataAgendamento, horarioConsulta = horaAgendamento, observacoes = Request.Form["observacoes"] }; var validConsulta = (from u in ctx.Consultas where u.dataConsulta == dataAgendamento && u.horarioConsulta == horaAgendamento && u.idPaciente == usuario select u.IdConsulta).Count(); if (validConsulta > 0) { //fazer tela de erro return RedirectToAction("", "Agendamento"); } else { ctx2.Consultas.Add(cons); ctx2.SaveChanges(); } return RedirectToAction("", "Agendamento"); } else { ModelState.AddModelError("Senha", "Usuário ou senha inválido"); return View(); } }
public ActionResult RemoveConsulta(int Id) { using (var context = new ApplicationDbContext()) { var cons = context.Consultas.FirstOrDefault(u => u.IdConsulta == Id); context.Consultas.Remove(cons); context.SaveChanges(); return RedirectToAction("", "Agendamento"); } }
//Salvar Alteração de Observações public void ListaObservacoes(List<Models.Agendamento.Observacoes> lista) { ApplicationDbContext db = new ApplicationDbContext(); foreach (var observacoes in lista) { var user = db.Consultas.Single(u => u.IdConsulta == observacoes.Id); user.observacoes = observacoes.Obs; db.SaveChanges(); } }
public ActionResult Editar(Medico medico) { var ctx = new ApplicationDbContext(); if (ctx.Medicos.FirstOrDefault(m => m.CRM == medico.CRM && m.IdMedico != medico.IdMedico) != null) { ModelState.AddModelError("CRM", "Já existe um médico cadastrado com este CRM"); } if (!ModelState.IsValid) { return View(medico); } var medicoExistente = ctx.Medicos.Find(medico.IdMedico); medicoExistente.CRM = medico.CRM; medicoExistente.Nome = medico.Nome; medicoExistente.idEspecialidade = medico.idEspecialidade; medicoExistente.DataNascimento = medico.DataNascimento; medicoExistente.SexoMasculino = medico.SexoMasculino; medicoExistente.Telefone = medico.Telefone; medicoExistente.Email = medico.Email; medicoExistente.Observacoes = medico.Observacoes; ctx.SaveChanges(); return RedirectToAction("Index", new { msg = "Médico alterado com sucesso" }); }
public ActionResult Incluir(Medico medico) { var ctx = new ApplicationDbContext(); if (ctx.Medicos.FirstOrDefault(m => m.CRM == medico.CRM) != null) { ModelState.AddModelError("CRM", "Já existe um médico cadastrado com este CRM"); } if (medico.Disponibilidade.HasValue && medico.Disponibilidade.Value < DateTime.Now.Date) { ModelState.AddModelError("Disponibilidade", "Disponibilidade deve ser superior a data atual"); } if (!ModelState.IsValid) { return View(); } if (medico.Disponibilidade.HasValue) { medico.Ativo = false; } else { medico.Ativo = true; } ctx.Medicos.Add(medico); ctx.SaveChanges(); return RedirectToAction("Index", new { msg = "Médico cadastrado com sucesso" }); }