public void OnGet()
        {
            miembrosPorPais                  = informacionMiembroController.GetMiembrosPorPais();
            habilidadesPorPais               = informacionMiembroController.GetHabilidadesPorPais();
            habilidadesPorIdioma             = informacionMiembroController.GetHabilidadesPorIdioma();
            pasatiemposPorPais               = informacionMiembroController.GetPasatiemposPorPais();
            pasatiemposPorIdioma             = informacionMiembroController.GetPasatiemposPorIdioma();
            miembrosPorRol                   = informacionMiembroController.GetMiembrosPorRol();
            articulosPorRol                  = informacionArticuloController.GetArticulosPorRol();
            datosCatTopTodosRoles            = informacionArticuloController.GetDatosTablaCategoriaTopicosPorRol("");
            datosCatTopNucleo                = informacionArticuloController.GetDatosTablaCategoriaTopicosPorRol("Núcleo");
            datosCatTopActivo                = informacionArticuloController.GetDatosTablaCategoriaTopicosPorRol("Activo");
            datosCatTopPeriferico            = informacionArticuloController.GetDatosTablaCategoriaTopicosPorRol("Periférico");
            datosCatTopNoAsociadosTodos      = informacionCategoriaTopicoController.GetCategoriasTopicosNoAsociadosRol("");
            datosCatTopNoAsociadosNucleo     = informacionCategoriaTopicoController.GetCategoriasTopicosNoAsociadosRol("Núcleo");
            datosCatTopNoAsociadosActivo     = informacionCategoriaTopicoController.GetCategoriasTopicosNoAsociadosRol("Activo");
            datosCatTopNoAsociadosPeriferico = informacionCategoriaTopicoController.GetCategoriasTopicosNoAsociadosRol("Periférico");

            foreach (CategoriaTopicoModel catTop in datosCatTopNoAsociadosTodos)
            {
                DatosTablaCategoriaTopicos datoVacio = new DatosTablaCategoriaTopicos("", catTop.nombreCategoriaPK, catTop.nombreTopicoPK, 0, 0, 0);
                datosCatTopTodosRoles.Add(datoVacio);
            }

            datosCatTopTodosRoles.Sort((p, q) => p.nombreCategoriaFK.CompareTo(q.nombreCategoriaFK));

            foreach (CategoriaTopicoModel catTop in datosCatTopNoAsociadosNucleo)
            {
                DatosTablaCategoriaTopicos datoVacio = new DatosTablaCategoriaTopicos("", catTop.nombreCategoriaPK, catTop.nombreTopicoPK, 0, 0, 0);
                datosCatTopNucleo.Add(datoVacio);
            }

            datosCatTopNucleo.Sort((p, q) => p.nombreCategoriaFK.CompareTo(q.nombreCategoriaFK));

            foreach (CategoriaTopicoModel catTop in datosCatTopNoAsociadosActivo)
            {
                DatosTablaCategoriaTopicos datoVacio = new DatosTablaCategoriaTopicos("", catTop.nombreCategoriaPK, catTop.nombreTopicoPK, 0, 0, 0);
                datosCatTopActivo.Add(datoVacio);
            }

            datosCatTopActivo.Sort((p, q) => p.nombreCategoriaFK.CompareTo(q.nombreCategoriaFK));

            foreach (CategoriaTopicoModel catTop in datosCatTopNoAsociadosPeriferico)
            {
                DatosTablaCategoriaTopicos datoVacio = new DatosTablaCategoriaTopicos("", catTop.nombreCategoriaPK, catTop.nombreTopicoPK, 0, 0, 0);
                datosCatTopPeriferico.Add(datoVacio);
            }

            datosCatTopPeriferico.Sort((p, q) => p.nombreCategoriaFK.CompareTo(q.nombreCategoriaFK));
        }
示例#2
0
        public List <DatosTablaCategoriaTopicos> GetDatosTablaCategoriaTopicosPorRol(string rol)
        {
            List <DatosTablaCategoriaTopicos> listaDatos = new List <DatosTablaCategoriaTopicos>();

            if (rol == "") //Todos los roles
            {
                string connectionString = AppSettings.GetConnectionString();
                using (SqlConnection sqlConnection = new SqlConnection(connectionString))
                {
                    string sqlString = @"SELECT ATT.nombreCategoriaFK, ATT.nombreTopicoFK, COUNT(DISTINCT MAA.idArticuloFK) AS cantidad, SUM(DISTINCT A.visitas) AS visitas, AVG(DISTINCT A.puntajeTotalRev) AS puntajeProm
                                        FROM [dbo].[Miembro] M
                                        JOIN [dbo].[MiembroAutorDeArticulo] MAA
	                                        ON M.usernamePK = MAA.usernameMiemFK
                                        JOIN [dbo].[Articulo] A
	                                        ON MAA.idArticuloFK = A.articuloAID
                                        JOIN [dbo].[ArticuloTrataTopico] ATT
	                                        ON A.articuloAID = ATT.idArticuloFK
                                        WHERE A.estado = 'Publicado'
                                        GROUP BY ATT.nombreCategoriaFK, ATT.nombreTopicoFK
                                        ORDER BY ATT.nombreCategoriaFK, ATT.nombreTopicoFK";

                    sqlConnection.Open();
                    using (SqlCommand sqlCommand = new SqlCommand(sqlString, sqlConnection))
                    {
                        SqlDataReader dataReader = sqlCommand.ExecuteReader();
                        while (dataReader.Read())
                        {
                            DatosTablaCategoriaTopicos datos = new DatosTablaCategoriaTopicos("",
                                                                                              (string)dataReader["nombreCategoriaFK"],
                                                                                              (string)dataReader["nombreTopicoFK"],
                                                                                              (int)dataReader["cantidad"],
                                                                                              (int)dataReader["visitas"],
                                                                                              (double)dataReader["puntajeProm"]);
                            listaDatos.Add(datos);
                        }
                    }
                }
            }
            else
            {
                string connectionString = AppSettings.GetConnectionString();
                using (SqlConnection sqlConnection = new SqlConnection(connectionString))
                {
                    string sqlString = @"SELECT M.nombreRolFK, ATT.nombreCategoriaFK, ATT.nombreTopicoFK, COUNT(DISTINCT MAA.idArticuloFK) AS cantidad, SUM(DISTINCT A.visitas) AS visitas, AVG(DISTINCT A.puntajeTotalRev) AS puntajeProm
                                        FROM [dbo].[Miembro] M
                                        JOIN [dbo].[MiembroAutorDeArticulo] MAA
	                                        ON M.usernamePK = MAA.usernameMiemFK
                                        JOIN [dbo].[Articulo] A
	                                        ON MAA.idArticuloFK = A.articuloAID
                                        JOIN [dbo].[ArticuloTrataTopico] ATT
	                                        ON A.articuloAID = ATT.idArticuloFK
                                        WHERE A.estado = 'Publicado'
		                                        AND M.nombreRolFK = @rol
                                        GROUP BY M.nombreRolFK, ATT.nombreCategoriaFK, ATT.nombreTopicoFK
                                        ORDER BY M.nombreRolFK, ATT.nombreCategoriaFK, ATT.nombreTopicoFK";

                    sqlConnection.Open();
                    using (SqlCommand sqlCommand = new SqlCommand(sqlString, sqlConnection))
                    {
                        sqlCommand.Parameters.AddWithValue("@rol", rol);
                        SqlDataReader dataReader = sqlCommand.ExecuteReader();
                        while (dataReader.Read())
                        {
                            DatosTablaCategoriaTopicos datos = new DatosTablaCategoriaTopicos((string)dataReader["nombreRolFK"],
                                                                                              (string)dataReader["nombreCategoriaFK"],
                                                                                              (string)dataReader["nombreTopicoFK"],
                                                                                              (int)dataReader["cantidad"],
                                                                                              (int)dataReader["visitas"],
                                                                                              (double)dataReader["puntajeProm"]);
                            listaDatos.Add(datos);
                        }
                    }
                }
            }


            return(listaDatos);
        }