示例#1
0
        private string LlenarTablas()
        {
            // pone un using al principio de la pág y es más fácil
            PreguntasTableAdapter     daPreguntas    = new PreguntasTableAdapter();
            RespuestasTableAdapter    daRespuestas   = new RespuestasTableAdapter();
            RespNoValidasTableAdapter daResNoValidas = new RespNoValidasTableAdapter();

            // Llenamos las tablas del DataSet con la info de la BD filtrada por el adaptador
            // Asegurarse de que los datos se puedan traer
            try {
                daPreguntas.Fill(dsSerONoSer.Preguntas);
                daRespuestas.Fill(dsSerONoSer.Respuestas);
                daResNoValidas.Fill(dsSerONoSer.RespNoValidas);
            } catch (Exception e) {
                return($" No se puede conectar con la base de datos 'Ser o no ser'.\n{e.Message}");
            }
            return("");
        }
示例#2
0
        private string LLenarTablas()
        {
            string        error = "";
            List <String> preguntasSin12Respuestas        = new List <String>();
            List <String> preguntasSin8Acertadas4Erroneas = new List <String>();
            List <String> nivelesInferioresAlMaximo       = new List <String>();

            // Importamos -> using CapaDatosDSet.DsEstadoTableAdapters;
            PreguntasTableAdapter     daPreguntas     = new PreguntasTableAdapter();
            RespuestasTableAdapter    daRespuestas    = new RespuestasTableAdapter();
            RespNoValidasTableAdapter daRespNoValidas = new RespNoValidasTableAdapter();

            try
            {
                // LLenamos tablas si se puede acceder a la base de datos.
                daPreguntas.Fill(dsSerONoSer.Preguntas);
                daRespuestas.Fill(dsSerONoSer.Respuestas);
                daRespNoValidas.Fill(dsSerONoSer.RespNoValidas);

                if (dsSerONoSer.Preguntas.Count == 0)
                {
                    return("No hay preguntas\npóngase en contacto con su administrador@");
                }

                maxNivel = dsSerONoSer.Preguntas.Max(drPreguntas => drPreguntas.Nivel);
                bool[] niveles = new bool[maxNivel];
                foreach (var drPregunta in dsSerONoSer.Preguntas)
                {
                    int respValidas   = 0;
                    int respNoValidas = 0;
                    foreach (RespuestasRow drRespuesta in drPregunta.GetRespuestasRows())
                    {
                        if (drRespuesta.Valida)
                        {
                            respValidas++;
                        }
                        else
                        {
                            respNoValidas++;
                        }
                    }

                    int respTotales = respValidas + respNoValidas;
                    if (respTotales != 12)
                    {
                        preguntasSin12Respuestas.Add(drPregunta.NumPregunta.ToString());
                    }
                    if (respValidas != 8 || respNoValidas != 4)
                    {
                        preguntasSin8Acertadas4Erroneas.Add(drPregunta.NumPregunta.ToString());
                    }

                    niveles[drPregunta.Nivel - 1] = true;
                }


                for (int i = 0; i < maxNivel; i++)
                {
                    if (!niveles[i])
                    {
                        nivelesInferioresAlMaximo.Add((i + 1).ToString());
                    }
                }
            }
            catch (Exception e)
            {
                return(e.Message);
            }
            if (preguntasSin12Respuestas.Count > 0)
            {
                error += "Pregunta o preguntas sin 12 respuestas: " + String.Join(" ", preguntasSin12Respuestas) + "\n";
            }
            if (preguntasSin8Acertadas4Erroneas.Count > 0)
            {
                error += "Las siguientes preguntas no tienen 8 respuestas válidas y 4 erróneas: " + String.Join(" ", preguntasSin8Acertadas4Erroneas) + "\n";
            }
            if (nivelesInferioresAlMaximo.Count > 0)
            {
                error += $"El nivel máximo es {maxNivel} pero no hay preguntas en el nivel o niveles: " + String.Join(" ", nivelesInferioresAlMaximo) + "\n";
            }

            if (!String.IsNullOrWhiteSpace(error))
            {
                error += "póngase en contacto con su administrador@";
            }
            return(error);
        }
示例#3
0
        public String GestionarTablas()
        {
            //Importamos los adaptadores para las tablas del DataSet
            PreguntasTableAdapter preguntasTableAdapter = new PreguntasTableAdapter();

            RespNoValidasTableAdapter respNoValidasTableAdapter = new RespNoValidasTableAdapter();

            RespuestasTableAdapter respuestasTableAdapter = new RespuestasTableAdapter();

            String errormsj = "";

            //Llenamos las tablas
            try
            {
                //llenar tablas (si se conecta a la base de datos)
                preguntasTableAdapter.Fill(dsCultura.Preguntas);
                respNoValidasTableAdapter.Fill(dsCultura.RespNoValidas);
                respuestasTableAdapter.Fill(dsCultura.Respuestas);

                //control de errores
                int nivelMinimo = 1;
                int nivelMaximo = (from preg in dsCultura.Preguntas
                                   select preg.Nivel).Max();

                //comprobar si tiene preguntas
                if (dsCultura.Preguntas.Count < 1)
                {
                    errormsj += "No hay preguntas en la base de datos";
                }

                foreach (var drPpreg in dsCultura.Preguntas)
                {
                    //comprobar que cada pregunta tenga 12 respuestas
                    int numPreg = drPpreg.NumPregunta;
                    if (drPpreg.GetRespuestasRows().Count() != 12)
                    {
                        errormsj += "\nNo hay 12 respuestas para la pregunta" + numPreg;
                    }
                    else
                    {
                        //Comprobar que cada pregunta tiene 8 respuestas validas y 4 no validas
                        int numValidas   = 0;
                        int numNovalidas = 0;
                        foreach (var drResp in drPpreg.GetRespuestasRows())
                        {
                            if (drResp.Valida)
                            {
                                numValidas++;
                            }
                            else
                            {
                                numNovalidas++;
                            }
                        }
                        if (numNovalidas != 4 && numValidas != 8)
                        {
                            errormsj += "\nLa pregunta: " + numPreg + " no tiene 8 respuestas validas y 4 no validas";
                        }
                    }
                }

                //comprobar que al menos hay 1 pregunta en cada nivel
                for (int i = nivelMinimo; i <= nivelMaximo; i++)
                {
                    var numPreguntas = (from preg in dsCultura.Preguntas
                                        where preg.Nivel == i
                                        select preg.NumPregunta);
                    if (numPreguntas.Count() == 0)
                    {
                        errormsj += "\nEl nivel máximo es " + nivelMaximo + " pero no hay preguntas en el nivel: " + i;
                    }
                }
            }
            catch (Exception exc)
            {
                if (errormsj != "")
                {
                    errormsj = "\n";
                }
                errormsj += exc.Message;
            }
            return(errormsj);
        }