public async Task <ActionResult> EditPacienteEnfermedades(int?id, int?pacienteId, int?turnoId)
        {
            if (id == null || turnoId == null || pacienteId == null)
            {
                TempData[Application.MessageViewBagName] = new GenericMessageViewModel
                {
                    Message     = "No existe la ruta.",
                    MessageType = GenericMessages.warning
                };
                return(RedirectToAction("ListarPacientesHoy"));
            }

            Turno turno = await db.Turnos.FirstOrDefaultAsync(t => t.Id == turnoId && t.PacienteId == pacienteId);

            PacienteEnfermedad pacienteEnfermedadEncontrado = await db.PacienteEnfermedades.FindAsync(id);

            if (pacienteEnfermedadEncontrado == null || turno == null)
            {
                TempData[Application.MessageViewBagName] = new GenericMessageViewModel
                {
                    Message     = "No existe la ruta.",
                    MessageType = GenericMessages.warning
                };
                return(RedirectToAction("ListarPacientesHoy"));
            }

            ViewBag.EnfermedadId = new SelectList(db.Enfermedades, "Id", "Nombre", pacienteEnfermedadEncontrado.EnfermedadId);
            var pacienteEnfermedad = new PacienteEnfermedadView {
                Id = pacienteEnfermedadEncontrado.Id, PacienteId = pacienteEnfermedadEncontrado.PacienteId, TurnoId = turno.Id
            };

            return(View(pacienteEnfermedad));
        }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            PacienteEnfermedad pacienteEnfermedad = await db.PacienteEnfermedades.FindAsync(id);

            db.PacienteEnfermedades.Remove(pacienteEnfermedad);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> Edit([Bind(Include = "Id,PacienteId,EnfermedadId,Descripcion")] PacienteEnfermedad pacienteEnfermedad)
        {
            if (ModelState.IsValid)
            {
                db.Entry(pacienteEnfermedad).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.EnfermedadId = new SelectList(db.Enfermedades, "Id", "Nombre", pacienteEnfermedad.EnfermedadId);
            ViewBag.PacienteId   = new SelectList(db.Pacientes, "Id", "Nombre", pacienteEnfermedad.PacienteId);
            return(View(pacienteEnfermedad));
        }
        // GET: PacienteEnfermedades/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PacienteEnfermedad pacienteEnfermedad = await db.PacienteEnfermedades.FindAsync(id);

            if (pacienteEnfermedad == null)
            {
                return(HttpNotFound());
            }
            return(View(pacienteEnfermedad));
        }
        // GET: PacienteEnfermedades/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PacienteEnfermedad pacienteEnfermedad = await db.PacienteEnfermedades.FindAsync(id);

            if (pacienteEnfermedad == null)
            {
                return(HttpNotFound());
            }
            ViewBag.EnfermedadId = new SelectList(db.Enfermedades, "Id", "Nombre", pacienteEnfermedad.EnfermedadId);
            ViewBag.PacienteId   = new SelectList(db.Pacientes, "Id", "Nombre", pacienteEnfermedad.PacienteId);
            return(View(pacienteEnfermedad));
        }
        public async Task <ActionResult> EditPacienteEnfermedades(PacienteEnfermedadView pacienteEnfermedad)
        {
            try
            {
                PacienteEnfermedad pacienteEnfermedadEncontrado = await db.PacienteEnfermedades.Where(t => t.EnfermedadId == pacienteEnfermedad.EnfermedadId && t.PacienteId == pacienteEnfermedad.PacienteId).FirstOrDefaultAsync();

                if (pacienteEnfermedadEncontrado != null)
                {
                    TempData[Application.MessageViewBagName] = new GenericMessageViewModel
                    {
                        Message     = "Ya existe el registro.",
                        MessageType = GenericMessages.warning
                    };
                    ViewBag.EnfermedadId = new SelectList(db.Enfermedades, "Id", "Nombre", pacienteEnfermedad.EnfermedadId);
                    return(View(pacienteEnfermedad));
                }

                if (ModelState.IsValid)
                {
                    PacienteEnfermedad modificadoPacienteEnfermedad = new PacienteEnfermedad {
                        Id = pacienteEnfermedad.Id, EnfermedadId = pacienteEnfermedad.EnfermedadId, PacienteId = pacienteEnfermedad.PacienteId
                    };
                    db.Entry(modificadoPacienteEnfermedad).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    return(RedirectToAction("FichaMedicaConAgregarHistoriaClinica", new { pacienteId = pacienteEnfermedad.PacienteId, turnoId = pacienteEnfermedad.TurnoId }));
                }
            }
            catch (Exception ex)
            {
                var err = $"No se puede modificar el registro: {ex.Message}";
                TempData[Application.MessageViewBagName] = new GenericMessageViewModel
                {
                    Message     = err,
                    MessageType = GenericMessages.danger
                };
                ViewBag.EnfermedadId = new SelectList(db.Enfermedades, "Id", "Nombre", pacienteEnfermedad.EnfermedadId);
                return(View(pacienteEnfermedad));
            }

            ViewBag.EnfermedadId = new SelectList(db.Enfermedades, "Id", "Nombre", pacienteEnfermedad.EnfermedadId);
            return(View(pacienteEnfermedad));
        }