예제 #1
0
 private void avisoCambioBD(string text)
 {
     if (this.InvokeRequired)
     {
         AvisoCountCambio av   = new AvisoCountCambio(avisoCambioBD);
         object[]         objs = new object[] { text };
         this.Invoke(av, objs);
     }
     else
     {
         if (MessageBox.Show(text + "\nPresionar Ok para refrescar vista", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Warning) == DialogResult.OK)
         {
             try
             {
                 dgvHistorialEnvios.DataSource = MuebleDAO.GetMueblesFromDB(cmbOrderBy.Text, true).Tables[0];
                 myThread.Abort();
                 Entidades.TablaMueblesListener myListener = new Entidades.TablaMueblesListener();
                 myListener.dataBaseChanged += avisoCambioBD;
                 myThread = new Thread(myListener.DataBaseListener);
                 myThread.Start();
             } catch (Exception)
             {
                 MessageBox.Show("No hay conexión con la base de datos, se cerrará este form");
             }
         }
     }
 }
예제 #2
0
        private void FrmHistorialDeEnvios_Load(object sender, EventArgs e)
        {
            dgvHistorialEnvios.ReadOnly   = true;
            dgvHistorialEnvios.DataSource = MuebleDAO.GetMueblesFromDB("FechaDeEnvio", true).Tables[0];
            int c = dgvHistorialEnvios.Columns.Count;

            for (int i = 0; i < c; i++)
            {
                this.cmbOrderBy.Items.Add(dgvHistorialEnvios.Columns[i].HeaderText);
            }
            this.cmbOrderBy.SelectedIndex   = 0;
            this.cmbOrderType.SelectedIndex = 0;
            try
            {
                Entidades.TablaMueblesListener myListener = new Entidades.TablaMueblesListener();
                myListener.dataBaseChanged += avisoCambioBD;
                myThread = new Thread(myListener.DataBaseListener);
                myThread.Start();
            }
            catch (Exception)
            {
                MessageBox.Show("No hay conexión con la base de datos, se cerrará este form");
                this.Close();
            }
        }
예제 #3
0
 private void bsStockMuebles_CurrentChanged(object sender, EventArgs e)
 {
     try
     {
         if (this.bsStockMuebles.Count > 0)
         {
             this.rtxbMuebleDetails.Text = MuebleDAO.GetDetalleMueble((Mueble)this.bsStockMuebles.Current);
         }
     }
     catch (Exception)
     {
         this.rtxbMuebleDetails.Text = string.Empty;
     }
 }
예제 #4
0
 /// <summary>
 /// "Escuchará" a la base de datos para saber si se produjo algún cambio.
 /// En este ejemplo, al no existir deletes ni updates desde los formularios hago un count de los registros.
 /// Probablemente sería mejor usar un trigger :p
 /// </summary>
 public void DataBaseListener()
 {
     while (true)
     {
         if (this.cantidadMuebles != MuebleDAO.GetCountMuebles())
         {
             if (this.dataBaseChanged != null)
             {
                 this.dataBaseChanged.Invoke("La base de datos fue actualizada");
                 this.cantidadMuebles = MuebleDAO.GetCountMuebles();
             }
         }
         Thread.Sleep(1000);
     }
 }
예제 #5
0
        private void btnOrdenar_Click(object sender, EventArgs e)
        {
            bool ascending = false;

            if (cmbOrderType.Text == "Ascendiente")
            {
                ascending = true;
            }
            try
            {
                dgvHistorialEnvios.DataSource = MuebleDAO.GetMueblesFromDB(cmbOrderBy.Text, ascending).Tables[0];
            }
            catch (Exception)
            {
                MessageBox.Show("No hay conexión con la base de datos");
            }
        }
예제 #6
0
 private void btnEnviar_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show($"Confirmar envío del mueble " +
                         $"{((Mueble)this.bsStockMuebles.Current).CodigoGuid}",
                         "Envio",
                         MessageBoxButtons.YesNo) == DialogResult.Yes)
     {
         try
         {
             MuebleDAO.Insert(((Mueble)this.bsStockMuebles.Current));
             this.bsStockMuebles.Remove(((Mueble)this.bsStockMuebles.Current));
         } catch (Exception ex)
         {
             if (MessageBox.Show("Error al insertar en base de datos \n¿Enviar de todos modos?", "Error de envío", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
             {
                 this.bsStockMuebles.Remove(((Mueble)this.bsStockMuebles.Current));
             }
         }
     }
 }
예제 #7
0
 public TablaMueblesListener()
 {
     this.cantidadMuebles = MuebleDAO.GetCountMuebles();
 }