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 Login(FormCollection f, string returnUrl) { var ctx = new ApplicationDbContext(); var aaa = Request.Form["login"]; var bbb = Request.Form["senha"]; var saudacao = ""; var usu = (from u in ctx.Usuarios where u.Login == aaa && u.Senha == bbb select u).FirstOrDefault(); if (usu != null) { if (usu.Apelido == null) { saudacao = usu.Nome; } else { saudacao = usu.Apelido; } FormsAuthentication.SetAuthCookie(saudacao, false); return RedirectToAction("Index", ""); } else { ModelState.AddModelError("Senha", "Usuário ou senha inválido"); return View(); } }
public ActionResult Consultas() { var ctx = new ApplicationDbContext(); var claims = HttpContext.User.Identity as ClaimsIdentity; var idMedico = int.Parse(claims.Claims.First(c => c.Type == "IdMedico").Value); var q = from c in ctx.Consultas where c.idMedico == idMedico select c; var agenda = q.ToList().Select(c => { var dataConsulta = DateTime.Parse(c.dataConsulta + " " + c.horarioConsulta, new CultureInfo("pt-BR")); var paciente = ctx.Usuarios.First(u => u.IdPaciente == c.idPaciente); return new { id = c.IdConsulta, title = paciente.Nome, start = dataConsulta.ToString("yyyy-MM-dd HH:mm:ss"), end = dataConsulta.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss"), color = "LimeGreen", allDay = false, marcacao = c.dataAgendamento, observacoes = c.observacoes }; }); return Json(agenda, JsonRequestBehavior.AllowGet); }
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 Editar(int id) { var ctx = new ApplicationDbContext(); var medico = ctx.Medicos.FirstOrDefault(m => m.IdMedico == id); if (medico == null || medico.Ativo == false) { return RedirectToAction("Index"); } return View(medico); }
public ActionResult Login(FormCollection f, string returnUrl) { var ctx = new ApplicationDbContext(); var login = Request.Form["login"]; var senha = Request.Form["senha"]; var usu = (from u in ctx.Usuarios where u.Login == login && u.Senha == senha select u).FirstOrDefault(); if (usu != null) { Session["UsuarioLogado"] = usu.IdPaciente; FormsAuthentication.SetAuthCookie(login, false); return RedirectToAction("Index", ""); } else { ModelState.AddModelError("Senha", "Usuário ou senha inválido"); return View(); } }
protected void Application_AuthenticateRequest(object sender, EventArgs e) { var authCookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName]; if (authCookie != null) { var ctx = new ApplicationDbContext(); var ticket = FormsAuthentication.Decrypt(authCookie.Value); var formsIdentity = new FormsIdentity(ticket); var claimsIdentity = new ClaimsIdentity(formsIdentity); var usuario = ctx.Usuarios.First(u => u.Login == ticket.Name); if (usuario.Apelido != null) { claimsIdentity.AddClaim(new Claim("saudacao", usuario.Apelido)); } else { claimsIdentity.AddClaim(new Claim("saudacao", usuario.Nome)); } switch (usuario.Tipo) { case Usuario.TipoUsuario.Paciente: claimsIdentity.AddClaim(new Claim(ClaimTypes.Role, "Paciente")); break; case Usuario.TipoUsuario.Medico: claimsIdentity.AddClaim(new Claim(ClaimTypes.Role, "Medico")); claimsIdentity.AddClaim(new Claim("IdMedico", usuario.IdMedico.ToString())); break; case Usuario.TipoUsuario.Secretaria: claimsIdentity.AddClaim(new Claim(ClaimTypes.Role, "Secretaria")); break; } HttpContext.Current.User = new ClaimsPrincipal(claimsIdentity); } }
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"); } }
public Models.Agendamento.ConsultaItem[] MinhasConsultas(int usuario) { ApplicationDbContext db = new ApplicationDbContext(); var mcons = (from con in db.Consultas.Where(con => con.idPaciente == usuario) from med in db.Medicos.Where(med => med.IdMedico == con.idMedico) //where DateTime.Parse(con.dataConsulta) >= DateTime.Parse(DateTime.Now.ToString("dd/MM/yyyy")) select new Models.Agendamento.ConsultaItem() { dataConsulta = con.dataConsulta, horarioConsulta = con.horarioConsulta, nome = med.Nome, observacoes = con.observacoes, idConsulta = con.IdConsulta }).Distinct().OrderBy(con => con.dataConsulta) .ToArray(); return mcons; }
/*Carregamento*/ public ActionResult Listar(int medico) { var ctx = new ApplicationDbContext(); var usuario = (int)Session["UsuarioLogado"]; var q = from c in ctx.Consultas where c.idMedico == medico select c; var agenda = q.ToList().Select(c => { var dataConsulta = DateTime.Parse(c.dataConsulta + " " + c.horarioConsulta, new CultureInfo("pt-BR")); if (c.idPaciente == usuario) { return new { id = c.IdConsulta, title = "Consulta", start = dataConsulta.ToString("yyyy-MM-dd HH:mm:ss"), end = dataConsulta.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss"), color = "LimeGreen", allDay = false }; } else { return new { id = c.IdConsulta, title = "Consulta", start = dataConsulta.ToString("yyyy-MM-dd HH:mm:ss"), end = dataConsulta.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss"), color = "DimGray", allDay = false }; } } ); return Json(agenda, JsonRequestBehavior.AllowGet); }
//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 JsonResult ListaMedico(int Id, string DataDisp) { if (DataDisp == "") { var state = from s in db.Medicos where s.idEspecialidade == Id && s.Ativo == true select s; return Json(new SelectList(state.ToArray(), "idMedico", "ConcatenarCRM"), JsonRequestBehavior.AllowGet); } else { using (var context = new ApplicationDbContext()) { var state = context.Medicos.SqlQuery("select distinct aa.idmedico,aa.nome,aa.idEspecialidade,aa.CRM from ( select m.*,xx.agenda,yy.consulta from medico m inner join agenda a on a.idmedico = m.IdMedico inner join consulta c on c.idMedico = m.IdMedico left join (select idmedico,count(*) as agenda from agenda where dataconsulta = '" + DataDisp + "' group by idMedico ) xx on xx.idMedico = m.IdMedico left join (select idmedico,count(*) as consulta from Consulta where dataconsulta = '" + DataDisp + "' group by idMedico) yy on yy.idMedico = m.IdMedico where c.dataconsulta = '" + DataDisp + "' and a.horarioConsulta = c.horarioConsulta ) aa where aa.consulta < aa.agenda and aa.idEspecialidade = " + Id); return Json(new SelectList(state.ToArray(), "idMedico", "ConcatenarCRM"), JsonRequestBehavior.AllowGet); } } }
public ActionResult Index(string msg) { var ctx = new ApplicationDbContext(); var lista = ctx.Medicos .Include("Especialidade") .OrderBy(m => m.Nome); ViewBag.Msg = msg; return View(lista); }
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" }); }