private void mnu_SyncTime_Click(object sender, EventArgs e)
 {
     TreeNode node = deviceTree1.SelectedNode;
     DeviceInfo device = node.Tag as DeviceInfo;
     if (device == null) return;
     ZKFingerKeeper keeper = new ZKFingerKeeper(device);
     FrmProcessing frm = new FrmProcessing();
     Action action = delegate()
     {
         frm.ShowProgress("正在连接考勤机...", 0);
         keeper.Connect();
         if (keeper.IsConnected)
         {
             try
             {
                 keeper.SetTime(DateTime.Now);
             }
             catch (ThreadAbortException)
             {
             }
             catch (Exception ex)
             {
                 LJH.GeneralLibrary.ExceptionHandling.ExceptionPolicy.HandleException(ex);
             }
             finally
             {
                 keeper.EnableDevice(true);
                 keeper.Disconnect();
                 frm.ShowProgress(string.Empty, 1);
             }
         }
         else
         {
             frm.ShowProgress("连接设备失败", 1);
         }
     };
     Thread t = new Thread(new ThreadStart(action));
     t.Start();
     frm.ShowDialog();
 }
 private void mnu_UploadAll_Click(object sender, EventArgs e)
 {
     TreeNode node = deviceTree1.SelectedNode;
     DeviceInfo device = node.Tag as DeviceInfo;
     if (device == null) return;
     ZKFingerKeeper keeper = new ZKFingerKeeper(device);
     FrmProcessing frm = new FrmProcessing();
     Action action = delegate()
     {
         frm.ShowProgress("正在连接考勤机...", 0);
         keeper.Connect();
         if (keeper.IsConnected)
         {
             try
             {
                 keeper.EnableDevice(false);
                 //清空控制器
                 frm.ShowProgress("正在清空设备...", 0);
                 keeper.ClearData(ClearDataFlag.UserInfo);
                 keeper.ClearData(ClearDataFlag.FPTemplate);
                 frm.ShowProgress("清空设备成功", 0.1m);
                 keeper.SetTime(DateTime.Now);
                 decimal count = 0;
                 frm.ShowProgress("开始上传人员...", 0);
                 List<Staff> staff = (new StaffBLL(AppSettings.CurrentSetting.ConnectUri)).GetItems(null).QueryObjects;
                 List<StaffBioTemplate> templates = (new StaffBLL(AppSettings.CurrentSetting.ConnectUri)).GetBioTemplates(null).QueryObjects;
                 for (int i = 0; i < staff.Count; i++)
                 {
                     keeper.SetUserInfo(staff[i]);
                     List<StaffBioTemplate> temp = templates.Where(item => item.StaffID == staff[i].ID).ToList();
                     if (temp != null && temp.Count > 0)
                     {
                         foreach (StaffBioTemplate template in temp)
                         {
                             keeper.SetUserTemplate(template);
                         }
                     }
                     count++;
                     frm.ShowProgress(string.Format("上传人员 {0}", staff[i].Name), count / staff.Count);
                 }
                 keeper.RefreshData();
             }
             catch (ThreadAbortException)
             {
             }
             catch (Exception ex)
             {
                 LJH.GeneralLibrary.ExceptionHandling.ExceptionPolicy.HandleException(ex);
             }
             finally
             {
                 keeper.EnableDevice(true);
                 keeper.Disconnect();
                 frm.ShowProgress(string.Empty, 1);
             }
         }
         else
         {
             frm.ShowProgress("连接设备失败", 1);
         }
     };
     Thread t = new Thread(new ThreadStart(action));
     t.Start();
     frm.ShowDialog();
 }