//Se repite cada 10 Segundos private void crono_tick(object sender, ElapsedEventArgs e) { string destino = Application.StartupPath + "\\horas.xml"; try { //Hora Actual del Sistema DateTime horaActual = DateTime.Now; //Si existe el archivo if (File.Exists(destino)) { //Cargo el XML XmlDocument documento = new XmlDocument(); documento.Load(destino); //Saco los datos necesarios XmlNodeList horas = (documento.GetElementsByTagName("HoraFin")); XmlNodeList cedula = (documento.GetElementsByTagName("Cedula")); DateTime h = DateTime.Parse(horas[0].InnerText.Trim().ToString()); //Hora actual var t1 = TimeSpan.Parse(horaActual.ToShortTimeString()); //Hora del finalización del Cajero var t2 = TimeSpan.Parse(h.ToShortTimeString()); //Si la hora actual es mayor a la de finalización de tareas //Registramos los minutos extras if (t1 > t2) { //Diferencia TimeSpan totalMinutos = (t1 - t2); //Pasado a minutos int minutosExtras = Convert.ToInt32(totalMinutos.TotalMinutes); //LLamada al servicio para registrar los minutos IServicio serv = new ServicioClient(); HorasExtras horasExtras = new HorasExtras(); horasExtras.Cajero = (Cajero)serv.BuscarCajeroServicioWin(Convert.ToInt32(cedula[0].InnerText.Trim().ToString())); if (horasExtras.Cajero == null) { throw new Exception("El cajero no existe o esta inactivo"); } horasExtras.Fecha = horaActual.Date; horasExtras.Minutos = minutosExtras; serv.GuardarHorasExtras(horasExtras); //Registro en Log Mensajes.WriteEntry("Se generaron " + minutosExtras + " Minutos Extras"); } } else { Mensajes.WriteEntry("No existe el archivo"); } } catch (Exception ex) { Mensajes.WriteEntry("Error: " + ex.Message); } }