private static void GenerarRespuestasPredeterminadasEnInteraccion( InteraccionModel <InteraccionBusiness> interaccion, RespuestaInteraccionFormularioModelCollection respuestas, PreguntaFormularioModelCollection preguntas) { if (respuestas.Count != preguntas.Count) { if (respuestas.Count == 0) { // Agrega todas las preguntas como respuestas predeterminadas respuestas = new RespuestaInteraccionFormularioModelCollection(); foreach (var preg in preguntas) { respuestas.Add(new RespuestaInteraccionFormularioModel() { Interaccion = (InteraccionModel)interaccion, Pregunta_CodigoSAP = preg.Pregunta_CodigoSAP }); } } else // Merge { // Eliminar respuestas para las cuales no haya pregunta for (int i = respuestas.Count - 1; i >= 0; i--) { RespuestaInteraccionFormularioModel rta = respuestas[i] as RespuestaInteraccionFormularioModel; if (preguntas.Where((preg) => preg.Pregunta_CodigoSAP == rta.Pregunta_CodigoSAP).FirstOrDefault() == null) { respuestas.Remove(rta); } } // Agregar respuestas que falten para cada pregunta foreach (var preg in preguntas) { if (respuestas.Where((rta) => rta.Pregunta_CodigoSAP == preg.Pregunta_CodigoSAP).FirstOrDefault() == null) { respuestas.Add(new RespuestaInteraccionFormularioModel() { Interaccion = (InteraccionModel)interaccion, Pregunta_CodigoSAP = preg.Pregunta_CodigoSAP }); } } } } else { // Puede que la cuenta sea igual pero el contenido no. // Se asume que nunca va a suceder. } interaccion.RespuestasInteraccionFormulario = respuestas; }
private static void GenerarRespuestasPredeterminadasEnInteraccion( InteraccionModel<InteraccionBusiness> interaccion, RespuestaInteraccionFormularioModelCollection respuestas, PreguntaFormularioModelCollection preguntas) { if (respuestas.Count != preguntas.Count) { if (respuestas.Count == 0) { // Agrega todas las preguntas como respuestas predeterminadas respuestas = new RespuestaInteraccionFormularioModelCollection(); foreach (var preg in preguntas) { respuestas.Add(new RespuestaInteraccionFormularioModel() { Interaccion = (InteraccionModel)interaccion, Pregunta_CodigoSAP = preg.Pregunta_CodigoSAP }); } } else // Merge { // Eliminar respuestas para las cuales no haya pregunta for (int i = respuestas.Count - 1; i >= 0; i--) { RespuestaInteraccionFormularioModel rta = respuestas[i] as RespuestaInteraccionFormularioModel; if (preguntas.Where((preg) => preg.Pregunta_CodigoSAP == rta.Pregunta_CodigoSAP).FirstOrDefault() == null) { respuestas.Remove(rta); } } // Agregar respuestas que falten para cada pregunta foreach (var preg in preguntas) { if (respuestas.Where((rta) => rta.Pregunta_CodigoSAP == preg.Pregunta_CodigoSAP).FirstOrDefault() == null) { respuestas.Add(new RespuestaInteraccionFormularioModel() { Interaccion = (InteraccionModel)interaccion, Pregunta_CodigoSAP = preg.Pregunta_CodigoSAP }); } } } } else { // Puede que la cuenta sea igual pero el contenido no. // Se asume que nunca va a suceder. } interaccion.RespuestasInteraccionFormulario = respuestas; }