Пример #1
0
 private void EnviarData(Object state)
 {
     if (datosCapturados)
     {
         try
         {
             File.AppendAllText(@"C:\logger.log", "(EVIAR ASISTENCIAS)" + Environment.NewLine);
             File.AppendAllText(@"C:\logger.log", "Inicio envio de asistencias..." + DateTime.Now + Environment.NewLine);
             //Genero una request al servidor para hacer un POST de los datos recien guardados
             var httpWebRequest = (HttpWebRequest)WebRequest.Create(direccion + "asistencias");
             httpWebRequest.ContentType = "application/json";
             httpWebRequest.Method      = "POST";
             //Envio los datos
             var reqStream = httpWebRequest.GetRequestStream();
             using (var streamWriter = new StreamWriter(reqStream))
             {
                 string json = JsonConvert.SerializeObject(dt); //Convierto los datos de la tabla "dt" a un JSON, descargar la libreria desde nuget (Newtonsoft.Json) y ponerla como referencia
                 streamWriter.Write(json);
                 streamWriter.Flush();
                 streamWriter.Close();
             }
             var r = httpWebRequest.GetResponse();
             if (((HttpWebResponse)r).StatusCode == HttpStatusCode.OK)
             {
                 foreach (DataRow row in dt.Rows)
                 {
                     File.AppendAllText("AsistanceGral.txt", row[0] + "\t" + row[1] + "\t" + row[2] + Environment.NewLine);
                 }
                 terminalZK.ClearKeeperData(idMaquina); //Borro todos los datos(usuarios y asistencias) del dispositivo
                 File.AppendAllText(@"C:\logger.log", "Envio de asistencias OK   " + DateTime.Now + Environment.NewLine);
                 datosCapturados = false;               //Reseteo por si falla algun otro metodo
                 timer3.Change(Timeout.Infinite, Timeout.Infinite);
             }
         }
         catch (WebException ex)
         {
             File.AppendAllText(@"C:\logger.log", DateTime.Now + "  ERROR de Red(enviar data): " + ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine);
             timer3.Change(480000, Timeout.Infinite); //re intento a los 8 minutos
         }
         catch (ProtocolViolationException ex)
         {
             File.AppendAllText(@"C:\logger.log", DateTime.Now + "  ERROR de Red(enviar data): " + ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine);
             timer3.Change(480000, Timeout.Infinite); //re intento a los 8 minutos
         }
         catch (Exception ex)
         {
             File.AppendAllText(@"C:\logger.log", DateTime.Now + " ERROR POST(enviar data):" + ex.Message + Environment.NewLine);
             timer3.Change(480000, Timeout.Infinite); //re intento a los 8 minutos
         }
     }
 }