コード例 #1
0
        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");
        }
コード例 #2
0
        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");
        }
コード例 #3
0
ファイル: ChatsPage.xaml.cs プロジェクト: juanzitelli/Lawful
        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");
            }
        }