Esempio n. 1
0
 private void TerminalUpdate()
 {
     TerminalUpdateTimer           = new System.Timers.Timer(10000);
     TerminalUpdateTimer.AutoReset = true;
     TerminalUpdateTimer.Elapsed  += (object sender, System.Timers.ElapsedEventArgs e) => {
         if (isConnected)
         {
             DataTable dt = new DataTable();
             dt = dbAccess.GetTerminalUpdate();
             log.Write($"Processing  {dt.Rows.Count} Terminal Updates");
             try
             {
                 if (dt.Rows.Count > 0)
                 {
                     TerminalUpdateTimer.Stop();
                     // u_type 1 add,2 delete,3 update
                     if (dt.Rows.Count > 1)
                     {
                         TDevice.devCon.BeginBatchUpdate(1, 1);
                     }
                     foreach (DataRow Row in dt.Rows)
                     {
                         if ((byte)Row[1] == 1 || (byte)Row[1] == 3)     //Add / Modily Student
                         {
                             if (TDevice.AddUser(((int)Row[2]).ToString(), (string)Row[3]))
                             {
                                 Row[4] = DateTime.Now;
                                 log.Write($"Student with Sid { ((int)Row[2]).ToString()}  Successfully added to Clock");
                             }
                         }
                         else if ((byte)Row[1] == 2)    // Delete Student
                         {
                             if (TDevice.DeleteUser(((int)Row[2]).ToString()))
                             {
                                 Row[4] = DateTime.Now;
                                 log.Write($"User with id {(int)Row[2]} Successfully Deleted From Clock");
                             }
                             else
                             {
                                 if (!TDevice.isUserExist(((int)Row[2]).ToString()))
                                 {
                                     Row[4] = DateTime.Now;
                                 }
                             }
                         }
                         else
                         {
                             log.Write($"Wrong Value called in terminal update as update type for update id  {(int)Row[0]} student {(string)Row[3]} ");
                         }
                     }
                     if (dt.Rows.Count > 1)
                     {
                         if (TDevice.devCon.BatchUpdate(1))
                         {
                             TDevice.devCon.RefreshData(1);
                             dbAccess.SetTerminalUpdate(dt); //Update the result to db.
                         }
                         else
                         {
                             log.Write("Error Updating in Batch" + TDevice.getlastError().ToString());
                         }
                     }
                 }
             }
             catch (Exception ex)
             {
                 log.Write("Terminal update block Error" + ex.Message);
             }
             finally
             {
                 TerminalUpdateTimer.Start();
             }
         }
         else
         {
             log.Write("Terminal update Failed - Device Not connected");
         }
     };
     TerminalUpdateTimer.Start();
 }