static public void ActualizarEstado(int idPregunta, string nuevoEstado) { try { //Conecto a la Bd Conexion_Desconexion.Connection(); //Armo el query string query = @"UPDATE Preguntas SET estado = @nuevoEstado WHERE id_pregunta = @idPregunta"; //Armo el command con el query y la conexion SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso todos los valores por parametros command.Parameters.AddWithValue("@nuevoEstado", nuevoEstado); command.Parameters.AddWithValue("@idPregunta", idPregunta); //Ejecuto el comando command.ExecuteNonQuery(); //Cierro la conexion a la Bd Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMPregunta ActualizarEstado"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } }
/// <summary> /// Inserta una nueva notificacion en la base de datos /// </summary> /// <param name="idUserPregunta"></param> /// <param name="idPregunta"></param> static public void AltaNotificacion(int idUserPregunta, int idPregunta) { try { //Hago la conexion a la Bd Conexion_Desconexion.Connection(); //Armo el query para el command string query = @"INSERT INTO Notificaciones(id_user, id_pregunta) VALUES(@id_user, @id_pregunta)"; //Armo mi command con el query y la conexion SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso los ids codificados por parametro command.Parameters.AddWithValue("@id_user", idUserPregunta); command.Parameters.AddWithValue("@id_pregunta", idPregunta); //Ejecuto el query command.ExecuteNonQuery(); //Desconecto la base de datos Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMNotificacion AltaNotificacion"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } }
/// <summary> /// Chequea si existe un usuario dado su email /// </summary> /// <param name="email"></param> /// <returns></returns> static public bool ExisteUser(string email) { int count; try { //Armo la conexion a la base de datos Conexion_Desconexion.Connection(); //Armo el query para verificar que existe el usuario segun su email string query = @"SELECT COUNT(*) FROM Usuarios WHERE email = @email"; //Armo el command con el query SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso el email por parametro codificado command.Parameters.AddWithValue("@email", email); //Verifico la cantidad de veces que aparece el email en la base de datos y lo guardo count = Convert.ToInt32(command.ExecuteScalar()); //Cierro la conexion a la base de datos Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMUsuario ExisteUser con email"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } //Devuelve true/false segun exista o no el user con ese email return(count != 0); }
/// <summary> /// Elimina de la base de datos la notificacion con el id especificado /// </summary> /// <param name="idNotificacion"></param> static public void BajaNotificacion(int idNotificacion) { try { //Hago la conexion a la Bd Conexion_Desconexion.Connection(); //Armo el query string query = @"DELETE FROM Notificaciones WHERE id_notificacion = @idNotif"; //Genero el command SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso el id de la notif como parametro command.Parameters.AddWithValue("idNotif", idNotificacion); //Ejecuto el query command.ExecuteNonQuery(); //Cierro la conexion a la Bd Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMNotificacion BajaNotificacion"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } }
/// <summary> /// modifica alguna propiedad del usuario /// </summary> /// <param contraseña="contraseña"></param> /// <returns></returns> static public void modificarAtributo(int idUser, string contraseña) { idUser = 1; contraseña = "4321"; try { //Armo la conexion a la base de datos Conexion_Desconexion.Connection(); //Armo el query para verificar que existe el usuario segun su id string query = @"UPDATE Usuarios SET password = @new_password WHERE id_user = @id_user"; //Armo el command con el query SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso el id por parametro codificado command.Parameters.AddWithValue("@id_user", idUser); command.Parameters.AddWithValue("@new_password", contraseña); //Ejecuto el comando command.ExecuteNonQuery(); //Cierro la conexion a la base de datos Conexion_Desconexion.Disconnect(); // } catch { } }
/// <summary> /// Elimina de la base de datos al usuario con el id especificado /// </summary> /// <param name="idUser"></param> static public void BajaUsuario(int idUser) { try { //Hago la conexion a la Bd Conexion_Desconexion.Connection(); //Armo el query string query = @"DELETE FROM Usuarios WHERE id_user = @id_user"; //Armo el command con el query y la conexion SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso el id del usuario como parametro command.Parameters.AddWithValue("@id_user", idUser); //Ejecuto el command command.ExecuteNonQuery(); //Cierro la conexion a la Bd Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMUsuario BajaUsuario"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } }
/// <summary> /// Toma los datos de entrada de un nuevo usuario y los inserta a la base de datos /// </summary> static public void AltaUsuario(string nombre, string apellido, string pais, string email, string password) { try { //Hacer conexion a la base de datos Conexion_Desconexion.Connection(); string query = @"INSERT INTO Usuarios(nombre,apellido,pais_origen,Email,password) VALUES(@nombre,@apellido,@pais,@email,@password)"; SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); /*NOTA: placeholders.*/ command.Parameters.AddWithValue("@nombre", nombre); command.Parameters.AddWithValue("@apellido", apellido); command.Parameters.AddWithValue("@pais", pais); command.Parameters.AddWithValue("@email", email); command.Parameters.AddWithValue("@password", password); command.ExecuteNonQuery(); //Desconectar Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMUsuario AltaUsuario"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } }
/// <summary> /// Elimina la pregunta con el id especificaco de la base de datos /// </summary> /// <param name="idPreg"></param> static public void BajaPregunta(int idPregunta) { try { //Hago la conexion a la Bd Conexion_Desconexion.Connection(); //Armo el query string query = @"DELETE FROM Preguntas WHERE id_pregunta = @idPreg"; //Armo el command con el query y la conexion SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso el id de la pregunta por parametro command.Parameters.AddWithValue("@idPreg", idPregunta); //Ejecuto el query con el command command.ExecuteNonQuery(); //Cierro la conexion a la Bd Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMPregunta BajaPregunta"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } }
/// <summary> /// Inserta una nueva pregunta sin imagen en la base de datos /// </summary> /// <param name="idUser"></param> /// <param name="tituloPreg"></param> /// <param name="descripcionPreg"></param> static public void AltaPregunta(int idUser, string tituloPreg, string descripcionPreg) { try { //Conecto a la Bd Conexion_Desconexion.Connection(); //Armo el query string query = @"INSERT INTO Preguntas(id_user, titulo, descripcion) VALUES(@id_user, @titulo, @descripcion)"; //Armo el command con el query y la conexion SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso todos los valores por parametros command.Parameters.AddWithValue("@id_user", idUser); command.Parameters.AddWithValue("@titulo", tituloPreg); command.Parameters.AddWithValue("@descripcion", descripcionPreg); //Ejecuto el comando command.ExecuteNonQuery(); //Cierro la conexion a la Bd Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMPregunta AltaPregunta sin imagen"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } }
/// <summary> /// Crea una nueva respuesta con imagen y la inserta en la base de datos /// </summary> /// <param name="idUserResp"></param> /// <param name="idPregunta"></param> /// <param name="tituloResp"></param> /// <param name="descripcionResp"></param> /// <param name="urlImg"></param> static public void AltaRespuesta(int idUserResp, int idPregunta, string tituloResp, string descripcionResp, string urlImg) { // Realizar INSERT INTO en la tabla de respuestas try { //Hacer conexion a la base de datos Conexion_Desconexion.Connection(); string query = @"INSERT INTO Respuestas(id_user,id_pregunta,titulo,descripcion,url_imagen) VALUES(@id_user,@id_pregunta,@titulo,@descripcion,@url_imagen)"; SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); /*NOTA: placeholders.*/ command.Parameters.AddWithValue("@id_user", idUserResp); command.Parameters.AddWithValue("@id_pregunta", idPregunta); command.Parameters.AddWithValue("@titulo", tituloResp); command.Parameters.AddWithValue("@descripcion", descripcionResp); command.Parameters.AddWithValue("@url_imagen", urlImg); command.ExecuteNonQuery(); //Desconectar Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMRespuesta AltaRespuesta con imagen"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } }
static public List <int> GetIdsUsuariosLike(int idRespuesta) { List <int> IdsUsers = new List <int>(); try { Conexion_Desconexion.Connection(); string query = @"SELECT id_user FROM Likes WHERE id_respuesta = @idRespuesta"; SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); command.Parameters.AddWithValue("@idRespuesta", idRespuesta); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { IdsUsers.Add(reader.GetInt32(0)); } Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMRespuesta GetIdsUsuariosLike"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } return(IdsUsers); }
/// <summary> /// Elimina una respuesta de la base de datos /// </summary> static public void BajaRespuesta(int idRespuesta) { try { //Conecto a la base de datos Conexion_Desconexion.Connection(); //Tomo la cadena sql para hacer el Delete string query = @"DELETE FROM Respuestas WHERE id_respuesta = @idResp"; //Armo el command con mi query y la conexion SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso como parametro codificado el id de la respuesta command.Parameters.AddWithValue("@idResp", idRespuesta); //Ejecuto el Delete y cierro la conexion command.ExecuteNonQuery(); Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMRespuesta BajaRespuesta"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } }
/// <summary> /// Selecciona todas las preguntas en la base de datos /// </summary> /// <returns></returns> static public List <Pregunta> GetPreguntas() { List <Pregunta> preguntas = new List <Pregunta>(); try { //Me conecto a la Bd Conexion_Desconexion.Connection(); //Armo el query string query = @"SELECT * FROM Preguntas"; //Armo el command con el query y conexion SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Creo un reader que ejecute el query SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { //Armo una nueva pregunta con los datos que toma el reader y la cargo a la lista Pregunta preg = new Pregunta(); preg.IdUserPregunta = reader.GetInt32(0); preg.IdPregunta = reader.GetInt32(1); if (reader[2] == DBNull.Value) { preg.IdSolucion = -1; } else { preg.IdSolucion = reader.GetInt32(2); } preg.Titulo = reader.GetString(3); preg.Descripcion = reader.GetString(4); if (reader[5] == DBNull.Value) { preg.UrlImagen = null; } else { preg.UrlImagen = reader.GetString(5); } preg.Fecha = reader.GetDateTime(6); preg.Estado = reader.GetString(7); preguntas.Add(preg); } //Cierro la conexion a la Bd Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMPregunta GetPreguntas (todas las preguntas del sistema)"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } return(preguntas); }
/// <summary> /// Selecciona las respuestas de la pregunta con el id especificado /// </summary> /// <param name="idPregunta"></param> /// <returns></returns> public static List <Respuesta> GetRespuestas(int idPregunta) { List <Respuesta> respuestas = new List <Respuesta>(); try { //Hago la conexion a la base de datos Conexion_Desconexion.Connection(); //Armo el query para seleccionar todas las respuestas segun el id string query = @"SELECT * FROM Respuestas WHERE id_pregunta = @idPreg"; //Armo el command con el query y la conexion SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso como parametro codificado el id de la pregunta command.Parameters.AddWithValue("@idPreg", idPregunta); //Ejecuto un reader que va a tomar toda la informacion de la tabla correspondiendo a la condicion impuesta en el query SqlDataReader reader = command.ExecuteReader(); //Mientras voy leyendo los datos, los tomo y armo una respuesta que luego agrego a la lista de respuestas while (reader.Read()) { Respuesta resp = new Respuesta(); resp.IdUserResp = reader.GetInt32(0); resp.IdPregunta = reader.GetInt32(1); resp.IdRespuesta = reader.GetInt32(2); resp.Titulo = reader.GetString(3); resp.Descripcion = reader.GetString(4); if (reader[5] == DBNull.Value) { resp.UrlImagen = null; } else { resp.UrlImagen = reader.GetString(5); } resp.Fecha = reader.GetDateTime(6); respuestas.Add(resp); } //Cierro la conexion a la Bd Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMRespuesta GetRespuestas"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } //Finalmente devuelvo la lista de respuestas return(respuestas); }
/// <summary> /// Obtiene las notificaciones correspondientes del usuario con el id especificado /// </summary> /// <param name="idUser"></param> /// <returns></returns> static public List <Notificacion> GetNotificaciones(int idUser) { List <Notificacion> notificaciones = new List <Notificacion>(); try { //Hago la conexion a la base de datos Conexion_Desconexion.Connection(); //Armo el query para seleccionar todas las notificaciones segun el id string query = @"SELECT id_user, id_pregunta, id_notificacion, fecha_notificacion FROM Notificaciones WHERE id_user = @idUser"; //Armo el command con el query y la conexion SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso como parametro codificado el id del usuario command.Parameters.AddWithValue("@idUser", idUser); //Ejecuto un reader que va a tomar toda la informacion de la tabla correspondiendo a la condicion impuesta en el query SqlDataReader reader = command.ExecuteReader(); //Mientras voy leyendo los datos, los tomo y armo una notificacion que luego agrego a la lista de notificaciones while (reader.Read()) { Notificacion notif = new Notificacion(); notif.IdUserPregunta = reader.GetInt32(0); notif.IdPregunta = reader.GetInt32(1); notif.IdNotificacion = reader.GetInt32(2); notif.Fecha = reader.GetDateTime(3); notificaciones.Add(notif); } //Cierro la conexion a la Bd Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMNotificacion GetNotificaciones"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } //Finalmente devuelvo la lista de notificaciones return(notificaciones); }
/// <summary> /// Realiza una consulta a la base de datos para obtener un usuario con el id especificado /// </summary> /// <param name="idUser"></param> /// <returns></returns> static public Usuario GetUsuario(string email) { Usuario user = new Usuario(); try { //Hago la conexion a la base de datos Conexion_Desconexion.Connection(); //Armo mi query para buscar un usuario especifico string query = @"SELECT * FROM Usuarios WHERE email = @email"; //Armo el command con el query y la conexion SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso como parametro codificado el id del usuario que busco command.Parameters.AddWithValue("@email", email); //Creo un reader que ejecute el query SqlDataReader reader = command.ExecuteReader(); //Utilizo el reader para leer los datos del usuario y cargarlos a user reader.Read(); user.IdUsuario = reader.GetInt32(0); user.Nombre = reader.GetString(1); user.Apellido = reader.GetString(2); user.PaisOrigen = reader.GetString(3); user.Email = reader.GetString(4); user.Password = reader.GetString(5); user.FechaIngreso = reader.GetDateTime(6); //Desconecto la base de datos Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMUsuario GetUsuario con email"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } //Devuelvo el alumno cargado return(user); }
/// <summary> /// Realiza un DELETE en la tabla likes /// con el id del user y el id de la respuesta /// </summary> /// <param name="idRespuesta"></param> /// <param name="likes"></param> static public void BajaLike(int idRespuesta, int idUser) { try { Conexion_Desconexion.Connection(); string query = @"DELETE FROM Likes WHERE id_respuesta= @idResp AND id_user = @idUser"; SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); command.Parameters.AddWithValue("@idResp", idRespuesta); command.Parameters.AddWithValue("@idUser", idUser); command.ExecuteNonQuery(); Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMRespuesta BajaLike"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } }
/// <summary> /// Realiza un INSERT en la tabla likes /// con el id del user y el id de la respuesta /// </summary> /// <param name="idRespuesta"></param> /// <param name="likes"></param> static public void AltaLike(int idRespuesta, int idUser) { try { Conexion_Desconexion.Connection(); string query = @"INSERT INTO Likes(id_respuesta, id_user) VALUES(@idResp, @idUser)"; SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); command.Parameters.AddWithValue("@idResp", idRespuesta); command.Parameters.AddWithValue("@idUser", idUser); command.ExecuteNonQuery(); Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMRespuesta AltaLike"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } }
/// <summary> /// Selecciona las preguntas del usuario con el id especificado /// </summary> /// <param name="idUser"></param> /// <returns></returns> static public List <Pregunta> GetPreguntas(int idUser) { List <Pregunta> preguntasDeUser = new List <Pregunta>(); try { //Hago la conexion a la Bd Conexion_Desconexion.Connection(); //Armo el query string query = @"SELECT * FROM Preguntas WHERE id_user = @idUser"; //Armo el command con el query y la conexion SqlCommand command = new SqlCommand(query, Conexion_Desconexion.Con); //Paso el id del usuario por parametro command.Parameters.AddWithValue("@idUser", idUser); //Armo un reader que ejecute el query SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { //Armo una nueva pregunta con los datos que toma el reader y la cargo a la lista Pregunta preg = new Pregunta(); preg.IdUserPregunta = reader.GetInt32(0); preg.IdPregunta = reader.GetInt32(1); //Si el valor del campo solucion es nulo, tomo id solucion como -1 if (reader[2] == DBNull.Value) { preg.IdSolucion = -1; } else { preg.IdSolucion = reader.GetInt32(2); } preg.Titulo = reader.GetString(3); preg.Descripcion = reader.GetString(4); if (reader[5] == DBNull.Value) { preg.UrlImagen = null; } else { preg.UrlImagen = reader.GetString(5); } preg.Fecha = reader.GetDateTime(6); preg.Estado = reader.GetString(7); preguntasDeUser.Add(preg); } //Cierro la conexion a la Bd Conexion_Desconexion.Disconnect(); } catch (Exception ex) { // Log del error string error = "Error en ABMPregunta GetPreguntas con id (todas las preguntas de un user)"; error += "\n--------------------\n"; error += ex.ToString(); error += "\n--------------------\n"; logger.Error(error); throw; } return(preguntasDeUser); }