Exemplo n.º 1
0
        private void btnAgregar_Click(object sender, RoutedEventArgs e)
        {
            int iTotal = lstArchivos.Items.Count;
            int iSelec = lstArchivos.SelectedIndex + 1;
            int iEsImpar = 0;

            Archivos view = new Archivos();
            view.Owner = this;
            view.bMain = true;
            view.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
            view.ShowDialog();

            if (!bArchivos)
            {
                ITCMessageBox.Show(this,"No agregaste Archivos","Error!");
                return;
            }
            int iTadd = lArchivos.Count;
            OdbcTransaction myTrans = null;

            this.IsEnabled = false;
            System.Threading.Thread t = new System.Threading.Thread(Sending);
            t.SetApartmentState(System.Threading.ApartmentState.STA);
            t.Start(getBase());

            try
            {
                System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
                System.Data.Odbc.OdbcConnection myConn = new System.Data.Odbc.OdbcConnection();
                string sVer = (string)cmbVersion.SelectedValue;
                string sAge = (string)cmbAgencia.SelectedValue;
                string sDis = (string)cmbDispo.SelectedValue;
                string sArchivo = string.Empty;
                myConn.ConnectionString = ((Menu)this.Owner).sConexion;
                myConn.Open();
                string myNonQuery;
                OdbcCommand myCommand;
                myTrans = myConn.BeginTransaction();
                for (int i = iTotal; i >= iSelec; i--)
                {
                    myNonQuery = "UPDATE HHc_ArchivosVersion SET ORDEN = ? WHERE CODIGO_AGENCIA = ? AND VERSION = ? AND TIPO_DISPOSITIVO = ? AND ORDEN = ?";
                    myCommand = new OdbcCommand(myNonQuery, myConn);
                    myCommand.Parameters.Add("ORDEN", OdbcType.Int).Value = i + iTadd;
                    myCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse(sAge);
                    myCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = sVer;
                    myCommand.Parameters.Add("TIPO_DISPOSITIVO", OdbcType.VarChar).Value = sDis;
                    myCommand.Parameters.Add("ORDEN", OdbcType.Int).Value = i;
                    myCommand.Transaction = myTrans;
                    myCommand.ExecuteNonQuery();
                }
                int orden = iSelec;
                foreach (Archivo aFile in lArchivos)
                {
                    byte[] bFile = null;

                    System.IO.FileStream fLoad = null;
                    string sFname = System.IO.Path.GetFileName(aFile.sName);
                    if ((sFname != "") && (System.IO.Path.GetExtension(sFname) != ""))
                    {
                        fLoad = System.IO.File.Open(aFile.sName, FileMode.Open, FileAccess.Read);
                        bFile = new byte[fLoad.Length];
                        fLoad.Read(bFile, 0, (int)fLoad.Length);
                        fLoad.Close();

                        sArchivo = BitConverter.ToString(bFile);
                        sArchivo = sArchivo.Replace("-", "");
                        sArchivo = "0x" + sArchivo;

                        if ((bFile.Length % 2) == 1)
                        {
                            sArchivo += "00";
                            iEsImpar = 1;
                        }
                    }
                    else
                    {
                        sArchivo = "NULL";
                    }

                    myNonQuery = "INSERT INTO HHc_ArchivosVersion VALUES (?, ?, ?, ?, ?, ?, ?, &, ?)";
                    myNonQuery = myNonQuery.Replace("&", sArchivo);
                    myCommand = new OdbcCommand(myNonQuery, myConn);
                    myCommand.Parameters.Add("CODIGO_AGENCIA", OdbcType.Int).Value = Int32.Parse(sAge);
                    myCommand.Parameters.Add("VERSION", OdbcType.VarChar).Value = sVer;
                    myCommand.Parameters.Add("TIPO_DISPOSITIVO", OdbcType.VarChar).Value = (string)cmbDispo.SelectedValue;
                    myCommand.Parameters.Add("ORDEN", OdbcType.Int).Value = orden;
                    myCommand.Parameters.Add("NOMBRE", OdbcType.VarChar).Value = aFile.sShort;
                    myCommand.Parameters.Add("PATH_DESTINO", OdbcType.VarChar).Value = aFile.sDestino;
                    myCommand.Parameters.Add("ACCION", OdbcType.Int).Value = aFile.option;
                    //myCommand.Parameters.Add("CONTENIDO", OdbcType.Binary).Value = bFile;
                    myCommand.Parameters.Add("ESIMPAR", OdbcType.Int).Value = iEsImpar;
                    myCommand.Transaction = myTrans;
                    myCommand.ExecuteNonQuery();
                    lstArchivos.Items.Insert(orden - 1, aFile);
                    orden++;
                }
                myTrans.Commit();
                myConn.Close();
                t.Abort();
                ITCMessageBox.Show(this, "Archivos modificados", "Mensaje!");
                System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
            }
            catch (Exception ex)
            {
                myTrans.Rollback();
                t.Abort();
                ITCMessageBox.Show(this, "Error al intentar modificar los archivos", "Error!");
                System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
            }
            this.IsEnabled = true;
        }
Exemplo n.º 2
0
 private void btnAgregar_Click(object sender, RoutedEventArgs e)
 {
     Archivos view = new Archivos();
     view.Owner = this;
     view.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
     view.ShowDialog();
     FillFileList();
 }