public AlmacenadorArticuloTests() { CategoriaTopicoModel cattop1 = new CategoriaTopicoModel(); CategoriaTopicoModel cattop2 = new CategoriaTopicoModel(); cattop1.nombreCategoriaPK = "Fisica"; cattop1.nombreCategoriaPK = "Fisica nuclear"; cattop2.nombreCategoriaPK = "Medicina"; cattop2.nombreTopicoPK = "Medicina nuclear"; listaModels = new List <CategoriaTopicoModel>(); listaModels.Add(cattop1); listaModels.Add(cattop2); listaAutores = new List <string>(); listaAutores.Add("kwang"); listaAutores.Add("kev"); listaTopicosString = new List <string>(); listaTopicosString.Add("Fisica: Fisica nuclear"); listaTopicosString.Add("Medicina: Medicina nuclear"); articulo = new ArticuloModel(); articulo.contenido = "Blablablabla"; articulo.fechaPublicacion = "2020/5/3"; }
public List <ArticuloModel> BuscarArticulo(SolicitudBusquedaModel solicitud) { List <ArticuloModel> articulos = new List <ArticuloModel>(); if (solicitud.tipoBusqueda == "topicos") { foreach (string catTop in solicitud.topicos) { string[] separacion = catTop.Split(": "); CategoriaTopicoModel modelo = new CategoriaTopicoModel() { nombreCategoriaPK = separacion[0], nombreTopicoPK = separacion[1] }; articulos.AddRange(buscadorArticuloDBHandler.GetArticulosPorTopicoYTipo(modelo, solicitud.tiposArticulo)); } articulos = articulos.Distinct(new ItemEqualityComparer()).ToList(); } else if (solicitud.tipoBusqueda == "titulos") { articulos = buscadorArticuloDBHandler.GetArticulosPorTituloYTipo(solicitud.textoBusqueda, solicitud.tiposArticulo); } else { articulos = buscadorArticuloDBHandler.GetArticulosPorAutorYTipo(solicitud.textoBusqueda, solicitud.tiposArticulo).Distinct(new ItemEqualityComparer()).ToList(); } return(articulos); }
public List <CategoriaTopicoModel> GetCategoriasTopicosArticulo(int id) { List <CategoriaTopicoModel> categoriaTopicos = new List <CategoriaTopicoModel>(); String connectionString = AppSettings.GetConnectionString(); String nombreUSP = "USP_GetCategoriasTopicosArticulo"; using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand command = new SqlCommand(nombreUSP, connection)) { connection.Open(); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@idArticuloPK", id); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { CategoriaTopicoModel categoriaTopico = new CategoriaTopicoModel() { nombreCategoriaPK = (string)reader["nombreCategoriaFK"], nombreTopicoPK = (string)reader["nombreTopicoFK"] }; categoriaTopicos.Add(categoriaTopico); } } } return(categoriaTopicos); }
public List <CategoriaTopicoModel> GetCategoriasYTopicos() { List <CategoriaTopicoModel> lista = new List <CategoriaTopicoModel>(); string connectionString = AppSettings.GetConnectionString(); using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { string sqlString = @"SELECT nombreCategoriaPK, nombreTopicoPK FROM CategoriaTopico ORDER BY nombreCategoriaPK, nombreTopicoPK"; sqlConnection.Open(); using (SqlCommand sqlCommand = new SqlCommand(sqlString, sqlConnection)) { using (SqlDataReader dataReader = sqlCommand.ExecuteReader()) { while (dataReader.Read()) { CategoriaTopicoModel categoriaTopico = new CategoriaTopicoModel() { nombreCategoriaPK = (string)dataReader["nombreCategoriaPK"], nombreTopicoPK = (string)dataReader["nombreTopicoPK"] }; lista.Add(categoriaTopico); } } } } return(lista); }
public void TestsBuscarArticuloPorTopico() { // Arrange List <string> topicos = new List <string>(); string tipoBusqueda = "topicos"; topicos.Add("Fisica: Fisica Cuantica"); topicos.Add("Fisica: Fisica Nuclear"); int tipoArt = 0; string textB = ""; SolicitudBusquedaModel solicitud = new SolicitudBusquedaModel(tipoBusqueda, topicos, tipoArt, textB); CategoriaTopicoModel categoriaTopico1 = new CategoriaTopicoModel(); CategoriaTopicoModel categoriaTopico2 = new CategoriaTopicoModel(); categoriaTopico1.nombreCategoriaPK = "Fisica"; categoriaTopico1.nombreTopicoPK = "Fisica Cuantica"; categoriaTopico2.nombreCategoriaPK = "Fisica"; categoriaTopico2.nombreTopicoPK = "Fisica Nuclear"; List <ArticuloModel> mockArticulos1 = new List <ArticuloModel> { new ArticuloModel { articuloAID = 1, titulo = "prueba", calificacionTotalMiem = 0, contenido = "contenido", estado = "publicado", fechaPublicacion = "2020-06-20", resumen = "resumen", tipo = "Corto", visitas = 0 }, new ArticuloModel { articuloAID = 2, titulo = "prueba", calificacionTotalMiem = 0, contenido = "contenido", estado = "publicado", fechaPublicacion = "2020-06-20", resumen = "resumen", tipo = "Corto", visitas = 0 }, }; List <ArticuloModel> mockArticulos2 = new List <ArticuloModel> { new ArticuloModel { articuloAID = 3, titulo = "prueba", calificacionTotalMiem = 0, contenido = "contenido", estado = "publicado", fechaPublicacion = "2020-06-20", resumen = "resumen", tipo = "Corto", visitas = 0 }, new ArticuloModel { articuloAID = 4, titulo = "prueba", calificacionTotalMiem = 0, contenido = "contenido", estado = "publicado", fechaPublicacion = "2020-06-20", resumen = "resumen", tipo = "Corto", visitas = 0 }, }; var mockDBHandler = new Mock <IBuscadorArticuloDBHandler>(); mockDBHandler.Setup(x => x.GetArticulosPorTopicoYTipo(It.Is <CategoriaTopicoModel>(t => t.nombreCategoriaPK == "Fisica" && t.nombreTopicoPK == "Fisica Cuantica"), tipoArt)).Returns(mockArticulos1); mockDBHandler.Setup(x => x.GetArticulosPorTopicoYTipo(It.Is <CategoriaTopicoModel>(t => t.nombreCategoriaPK == "Fisica" && t.nombreTopicoPK == "Fisica Nuclear"), tipoArt)).Returns(mockArticulos2); var controller = new BuscadorArticuloController(mockDBHandler.Object); // Act var articulos = controller.BuscarArticulo(solicitud); // Assert Assert.AreEqual(articulos[0].articuloAID, 1); Assert.AreEqual(articulos[1].articuloAID, 2); Assert.AreEqual(articulos[2].articuloAID, 3); Assert.AreEqual(articulos[3].articuloAID, 4); }
public void GuardarArticulo(ArticuloModel articulo, List <string> usernamePKMiembrosAutores, List <string> categoriaTopicoStrings) { if (articulo != null && usernamePKMiembrosAutores.Count > 0 && categoriaTopicoStrings.Count > 0) { List <CategoriaTopicoModel> listaModels = new List <CategoriaTopicoModel>(); foreach (string catTop in categoriaTopicoStrings) { string[] separacion = catTop.Split(": "); CategoriaTopicoModel modelo = new CategoriaTopicoModel() { nombreCategoriaPK = separacion[0], nombreTopicoPK = separacion[1] }; listaModels.Add(modelo); } almacenadorArticuloDBHandler.GuardarArticulo(articulo, usernamePKMiembrosAutores, listaModels); } }
public void EditarArticulo(ArticuloModel articulo, List <string> usernamePKMiembrosAutores, List <string> listaCategoriaTopicoStrings, string rutaCarpeta) { List <CategoriaTopicoModel> listaModels = new List <CategoriaTopicoModel>(); foreach (string catTop in listaCategoriaTopicoStrings) { string[] separacion = catTop.Split(": "); CategoriaTopicoModel modelo = new CategoriaTopicoModel() { nombreCategoriaPK = separacion[0], nombreTopicoPK = separacion[1] }; listaModels.Add(modelo); } editorArticuloDBHandler.EditarArticulo(articulo, usernamePKMiembrosAutores, listaModels); if (articulo.tipo == "Largo") { administradorDeArchivosFSHandler.BorrarViejoArchivo(articulo.articuloAID, rutaCarpeta); } }
public List <ArticuloModel> GetArticulosPorTopicoYTipo(CategoriaTopicoModel catTop, int tipos) { String connectionString = AppSettings.GetConnectionString(); using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand cmd; string tipoArt = ""; switch (tipos) { case 1: tipoArt = "Corto"; break; case 2: tipoArt = "Largo"; break; case 3: tipoArt = "Link"; break; default: tipoArt = ""; break; } cmd = new SqlCommand("USP_GetArticulosPorTopicoYTipo", connection); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@categoria", catTop.nombreCategoriaPK); cmd.Parameters.AddWithValue("@topico", catTop.nombreTopicoPK); cmd.Parameters.AddWithValue("@tipo", tipoArt); SqlDataReader reader = cmd.ExecuteReader(); List <ArticuloModel> artList = new List <ArticuloModel>(); while (reader.Read()) { ArticuloModel articuloActual = new ArticuloModel() { articuloAID = (int)reader["articuloAID"], titulo = (String)reader["titulo"], tipo = (String)reader["tipo"], fechaPublicacion = reader["fechaPublicacion"].ToString().Remove(reader["fechaPublicacion"].ToString().Length - 12, 12), resumen = (String)reader["resumen"], contenido = (String)reader["contenido"], estado = (String)reader["estado"], visitas = (int)reader["visitas"], puntajeTotalRev = (!DBNull.Value.Equals(reader["puntajeTotalRev"])) ? (double?)reader["puntajeTotalRev"] : null, calificacionTotalMiem = (int)reader["calificacionTotalMiem"] }; artList.Add(articuloActual); } reader.Close(); return(artList); } }
public List <CategoriaTopicoModel> GetCategoriasTopicosNoAsociadosRol(string rol) { List <CategoriaTopicoModel> lista = new List <CategoriaTopicoModel>(); if (rol == "") //Todos lo roles { string connectionString = AppSettings.GetConnectionString(); using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { string sqlString = @"SELECT CT.nombreCategoriaPK, CT.nombreTopicoPK FROM [dbo].[CategoriaTopico] CT WHERE CT.nombreCategoriaPK + ' ' + CT.nombreTopicoPK NOT IN (SELECT ATT.nombreCategoriaFK + ' ' + ATT.nombreTopicoFK FROM [dbo].[ArticuloTrataTopico] ATT JOIN [dbo].[Articulo] A ON ATT.idArticuloFK = A.articuloAID JOIN [dbo].[MiembroAutorDeArticulo] MAA ON A.articuloAID = MAA.idArticuloFK JOIN [dbo].[Miembro] M ON MAA.usernameMiemFK = M.usernamePK WHERE A.estado = 'Publicado')" ; sqlConnection.Open(); using (SqlCommand sqlCommand = new SqlCommand(sqlString, sqlConnection)) { using (SqlDataReader dataReader = sqlCommand.ExecuteReader()) { while (dataReader.Read()) { CategoriaTopicoModel categoriaTopico = new CategoriaTopicoModel() { nombreCategoriaPK = (string)dataReader["nombreCategoriaPK"], nombreTopicoPK = (string)dataReader["nombreTopicoPK"] }; lista.Add(categoriaTopico); } } } } } else { string connectionString = AppSettings.GetConnectionString(); using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { string sqlString = @"SELECT CT.nombreCategoriaPK, CT.nombreTopicoPK FROM [dbo].[CategoriaTopico] CT WHERE CT.nombreCategoriaPK + ' ' + CT.nombreTopicoPK NOT IN (SELECT ATT.nombreCategoriaFK + ' ' + ATT.nombreTopicoFK FROM [dbo].[ArticuloTrataTopico] ATT JOIN [dbo].[Articulo] A ON ATT.idArticuloFK = A.articuloAID JOIN [dbo].[MiembroAutorDeArticulo] MAA ON A.articuloAID = MAA.idArticuloFK JOIN [dbo].[Miembro] M ON MAA.usernameMiemFK = M.usernamePK WHERE A.estado = 'Publicado' AND M.nombreRolFK = @rol)" ; sqlConnection.Open(); using (SqlCommand sqlCommand = new SqlCommand(sqlString, sqlConnection)) { sqlCommand.Parameters.AddWithValue("@rol", rol); using (SqlDataReader dataReader = sqlCommand.ExecuteReader()) { while (dataReader.Read()) { CategoriaTopicoModel categoriaTopico = new CategoriaTopicoModel() { nombreCategoriaPK = (string)dataReader["nombreCategoriaPK"], nombreTopicoPK = (string)dataReader["nombreTopicoPK"] }; lista.Add(categoriaTopico); } } } } } return(lista); }