Esempio n. 1
0
        public bool InsertarCuestionario(List <Model.Cuestionario> oListCuestionario)
        {
            clsConnection oConnection = new clsConnection();

            oConnection.OpenConnection();

            using (SqlTransaction oSQLTRAN = oConnection.GetTransaction()) {
                try {
                    SqlCommand oSQLC = new SqlCommand("");

                    oSQLC.Connection  = oConnection.oCN;
                    oSQLC.Transaction = oSQLTRAN;

                    foreach (var oCuestionario in oListCuestionario)
                    {
                        oSQLC.CommandText = "INSERT INTO dbo.Cuestionario(TipoCuestionario, IDUsuario, Titulo, Descripcion, FechaInicio, FechaFinal) VALUES (@TipoCuestionario, @IDUsuario, @Titulo, @Descripcion, @FechaInicio, @FechaFinal); ";
                        oSQLC.Parameters.AddWithValue("@TipoCuestionario", oCuestionario.TipoCustionario);
                        oSQLC.Parameters.AddWithValue("@IDUsuario", oCuestionario.IDUsuario);
                        oSQLC.Parameters.AddWithValue("@Titulo", oCuestionario.Titulo);
                        oSQLC.Parameters.AddWithValue("@Descripcion", oCuestionario.Descripcion);
                        oSQLC.Parameters.AddWithValue("@FechaInicio", oCuestionario.FechaInicio);
                        oSQLC.Parameters.AddWithValue("@FechaFinal", oCuestionario.FechaFinal);
                        oSQLC.ExecuteNonQuery();
                        oSQLC.Parameters.Clear();


                        //******************************************************************************************************************************************************/

                        List <Model.Pregunta> ListPregunta = oCuestionario.Pregunta.ToList();
                        for (


                            int i = 0; i < ListPregunta.Count; i++)
                        {
                            oSQLC.CommandText = "INSERT INTO dbo.Pregunta(IDPregunta, IDTipoPregunta, IDCuestionario, DescripcionPregunta) VALUES (@IDPregunta, @IDTipoPregunta, @@IDENTITY, @DescripcionPregunta); ";
                            oSQLC.Parameters.AddWithValue("@IDPregunta", (i + 1));
                            oSQLC.Parameters.AddWithValue("@IDTipoPregunta", ListPregunta[i].IDTipoPregunta);
                            oSQLC.Parameters.AddWithValue("@DescripcionPregunta", ListPregunta[i].DescripcionPregunta);
                            oSQLC.ExecuteNonQuery();
                            oSQLC.Parameters.Clear();

                            List <Model.Opciones> ListaOpciones = ListPregunta[i].Opciones.ToList();
                            for (int j = 0; j < ListaOpciones.Count; j++)
                            {
                                oSQLC.CommandText = "INSERT INTO dbo.Opciones(IDOpcion, IDCuestionario, IDPregunta, DescripcionOpcion) VALUES(@IDOpcion, @@IDENTITY, @IDPregunta, @DescripcionOpcion); ";
                                oSQLC.Parameters.AddWithValue("@IDOpcion", (j + 1));
                                oSQLC.Parameters.AddWithValue("@IDPregunta", (i + 1));
                                oSQLC.Parameters.AddWithValue("@DescripcionOpcion", ListaOpciones[j].DescripcionOpcion);
                                oSQLC.ExecuteNonQuery();
                                oSQLC.Parameters.Clear();
                            }
                        }
                    }

                    oSQLTRAN.Commit();
                    oConnection.oCN.Close();
                    return(true);
                }
                catch (Exception ex) {
                    oSQLTRAN.Rollback();
                    oConnection.oCN.Close();
                    throw new Exception("Error al insertar cuestionarios", ex);
                }
            }
        }