public List <Mensaje> ObtenerMensajesTema(int temaID) { using (SqlConnection connection = new SqlConnection(Conexion.ConnectionString)) { connection.Open(); SqlCommand command = connection.CreateCommand(); SqlTransaction transaction; transaction = connection.BeginTransaction("Listar mensajes"); command.Connection = connection; command.Transaction = transaction; try { command.CommandText = $"SELECT mensajes_temas.id, emisor_id, tema_id,fecha,texto, nombre, apellido from mensajes_temas INNER JOIN usuarios ON mensajes_temas.emisor_id = usuarios.id WHERE tema_id = {temaID} ORDER BY fecha"; transaction.Commit(); using (SqlDataReader response = command.ExecuteReader()) { if (response.HasRows) { var chat = new List <Mensaje>(); while (response.Read()) { var mensaje = new MensajeATema() { ID = response.GetInt32(0), Emisor = new Usuario() { ID = response.GetInt32(1), Nombre = response.GetString(5), Apellido = response.GetString(6) }, Receptor = new Tema() { ID = response.GetInt32(2) }, Fecha = response.GetDateTime(3), Texto = response.GetString(4) }; chat.Add(mensaje); } return(chat); } return(null); } } catch (Exception ex2) { throw ex2; } } throw new Exception("Ha ocurrido un error"); }
public void EnviarMensajeTema(MensajeATema mensaje) { using (SqlConnection connection = new SqlConnection(Conexion.ConnectionString)) { connection.Open(); SqlCommand command = connection.CreateCommand(); SqlTransaction transaction; transaction = connection.BeginTransaction("Insertar mensaje"); command.Connection = connection; command.Transaction = transaction; try { command.CommandText = $"INSERT INTO mensajes_temas VALUES (@emisor_id,@tema_id,@texto,@fecha);"; command.Parameters.AddWithValue("@emisor_id", mensaje.Emisor.ID); command.Parameters.AddWithValue("@tema_id", mensaje.Receptor.ID); command.Parameters.AddWithValue("@texto", mensaje.Texto); command.Parameters.AddWithValue("@fecha", mensaje.Fecha); transaction.Commit(); command.ExecuteNonQuery(); return; } catch (Exception) { try { transaction.Rollback(); } catch (Exception ex2) { throw ex2; } } } throw new Exception("Ha ocurrido un error"); }
private void txtMensaje_KeyDown(object sender, Windows.UI.Xaml.Input.KeyRoutedEventArgs e) { if (e.Key == Windows.System.VirtualKey.Enter && !String.IsNullOrWhiteSpace(txtMensaje.Text)) { Mensaje mensaje; if (inTema) { mensaje = new MensajeATema(); ((MensajeATema)mensaje).Receptor = TemaSelected; } else { mensaje = new MensajeAUsuario(); ((MensajeAUsuario)mensaje).Receptor = UserSelected; } mensaje.Emisor = new Usuario() { ID = SesionActiva.ObtenerInstancia().Usuario.ID }; mensaje.Fecha = DateTime.Now; mensaje.Texto = txtMensaje.Text; txtMensaje.Text = ""; chatBL.EnviarMensaje(mensaje); if (inTema) { Chat = chatBL.ObtenerChat(TemaSelected.ID); } else { Chat = chatBL.ObtenerChat(SesionActiva.ObtenerInstancia().Usuario.ID, UserSelected.ID); } OnPropertyChanged("Chat"); } }