//Igual que la anterior función pero mas resumida y hecha de otra forma sin un for each
        public Categoria DevolverTestsCategoria2(int idCategoria, out string msg)
        {
            CategoriasRow drCategoria = ds.Categorias.FindByIdCategoria(idCategoria);

            if (drCategoria == null)
            {
                msg = "No existe la categoría";
                return(null);
            }

            List <CategoriasTestsRow> drCategoriasTest = drCategoria.GetCategoriasTestsRows().ToList();

            if (drCategoriasTest.Count == 0)
            {
                msg = "Esta categoría no tiene tests";
                return(null);
            }

            var listTest = (from drcatTest in drCategoriasTest
                            select new Test(drcatTest.IdTest, drcatTest.TestRow.Descripcion, (from drPregunta in drcatTest.TestRow.GetPreguntasRows()
                                                                                              select new Pregunta(drPregunta.IdPregunta, drPregunta.Enunciado, drPregunta.RespV)).ToList())).ToList();


            Categoria nuevaCategoria = new Categoria(drCategoria.IdCategoria, drCategoria.Descripcion, listTest);

            msg = "";
            return(nuevaCategoria);
        }
        public Categoria DevolverTestsCategoria(int idCategoria, out string msg)
        {
            CategoriasRow drCategoria = ds.Categorias.FindByIdCategoria(idCategoria);

            if (drCategoria == null)
            {
                msg = "No existe la categoría";
                return(null);
            }

            List <CategoriasTestsRow> drCategoriasTest = drCategoria.GetCategoriasTestsRows().ToList();

            var listTest = (from drcatTest in drCategoriasTest
                            select new Test(drcatTest.IdTest, drcatTest.TestRow.Descripcion)).ToList();

            if (listTest.Count == 0)
            {
                msg = "Esta categoría no tiene tests";
                return(null);
            }

            foreach (var test in listTest)
            {
                TestRow drTest = ds.Test.FindByIdTest(test.idTest);

                List <PreguntasRow> drPreguntas = drTest.GetPreguntasRows().ToList();

                List <Pregunta> listPreguntas = (from drPregunta in drPreguntas
                                                 select new Pregunta(drPregunta.IdPregunta, drPregunta.Enunciado, drPregunta.RespV)).ToList();
                if (listPreguntas.Count != 0)
                {
                    foreach (var pregunta in listPreguntas)
                    {
                        test.preguntasTest.Add(pregunta);
                    }
                }
            }

            Categoria nuevaCategoria = new Categoria(drCategoria.IdCategoria, drCategoria.Descripcion, listTest);

            msg = "";
            return(nuevaCategoria);
        }
Esempio n. 3
0
        public ReadOnlyCollection <Test> DevolverTestPorCategoria(int IdCat, out string msg)
        {
            msg = "";

            CategoriasRow drCategoria = ds.Categorias.FindById(IdCat); // TODO ¿Por qué el nombre es en plural si solo es 1?

            if (drCategoria == null)
            {
                msg = "La categoria no existe";
            }
            var drTestCategorias = drCategoria.GetTestCategoriasRows().ToList();
            var tests            = (from test in drTestCategorias
                                    select new Test(test.IdTest, test.TestsRow.Nombre)).ToList();


            if (tests.Count() == 0)
            {
                msg = "La lista de test esta vacia";
                return(tests.AsReadOnly());
            }
            return(tests.AsReadOnly());
        }
 public CategoriasRowChangeEvent(CategoriasRow row, DataRowAction action)
 {
     this.eventRow = row;
     this.eventAction = action;
 }
 public void RemoveCategoriasRow(CategoriasRow row)
 {
     this.Rows.Remove(row);
 }
 public void AddCategoriasRow(CategoriasRow row)
 {
     this.Rows.Add(row);
 }