コード例 #1
0
        //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);
            }
        }