private void PopulateRespuestasPosibles(Pregunta pregunta) { var todasRespuestas = db.Respuestas; var respuestasDeLaPregunta = new HashSet<int>(pregunta.Respuestas.Select(r => r.RespuestaID)); var viewModel = new List<RespuestasPorPregunta>(); foreach (var respuesta in todasRespuestas) { viewModel.Add(new RespuestasPorPregunta() { RespuestaID = respuesta.RespuestaID, Contenido = respuesta.Contenido, Seleccionado = respuestasDeLaPregunta.Contains(respuesta.RespuestaID) }); } ViewBag.Respuestas = viewModel; }
private void ModificarRespuestas(string[] respuestasSeleccionadas, Pregunta preguntaAEditar) { if(respuestasSeleccionadas == null) { preguntaAEditar.Respuestas = new List<Respuesta>(); return; } var respuestasSeleccionadasHS = new HashSet<string>(respuestasSeleccionadas); var respuestasDeLaPregunta = new HashSet<int>( preguntaAEditar.Respuestas.Select(r=>r.RespuestaID)); foreach (var respuesta in db.Respuestas) { if (respuestasSeleccionadasHS.Contains(respuesta.RespuestaID.ToString())) { if (!respuestasDeLaPregunta.Contains(respuesta.RespuestaID)) { preguntaAEditar.Respuestas.Add(respuesta); } } else { if (respuestasDeLaPregunta.Contains(respuesta.RespuestaID)) { preguntaAEditar.Respuestas.Remove(respuesta); } } } }