예제 #1
0
        //////////////////// DESCARGA ////////////////////////////////////
        private void backgroundDownloadInfo_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            List <Empleado>    empleados = new List <Empleado>();
            LogicDescargaDatos ldd       = new LogicDescargaDatos();

            try
            {
                backgroundDownloadInfo.ReportProgress(0);
                foreach (DataGridViewRow fila in gridPersonalReloj.Rows)
                {
                    DataGridViewCheckBoxCell cellSeleccion = fila.Cells["SeleccionDisp"] as DataGridViewCheckBoxCell;
                    if (Convert.ToBoolean(cellSeleccion.Value))
                    {
                        Empleado emp = new Empleado();
                        emp.Legajo  = fila.Cells["LegajoDisp"].Value.ToString();
                        emp.Nombre  = fila.Cells["NombreDisp"].Value.ToString();
                        emp.Pin     = fila.Cells["PinDisp"].Value.ToString();
                        emp.Tarjeta = fila.Cells["TarjetaDisp"].Value.ToString();
                        empleados.Add(emp);
                    }
                }
                if (empleados.Count <= 0)
                {
                    base.InformarError("No seleccionó ningún empleado", "Descargar Usuarios.");
                    return;
                }
                int total = 0;
                cantHuellas = 0;
                relojAct.Conectar();
                relojAct.Deshabilitar();
                foreach (Empleado emp in empleados)
                {
                    if (relojAct.Estado)
                    {
                        ldd.ActualizarInfo(emp);                         //Descargo la info del usuario
                        cantHuellas += ldd.AgregarHuella(emp, relojAct); //Descargo las huellas
                        total++;
                        backgroundDownloadInfo.ReportProgress((total * 100) / empleados.Count);
                    }
                }
                backgroundDownloadInfo.ReportProgress(100);
            }
            catch (Exception ex)
            {
                base.InformarError(ex.Message, "Descargar Usuarios.");
            }
            finally
            {
                relojAct.ActivarDispositivo();
                relojAct.Desconectar();
            }
        }