Exemplo n.º 1
0
        /// <summary>
        /// Generates a new log evento with the specified data.
        /// </summary>
        /// <param name="coche"></param>
        /// <param name="dispositivo"></param>
        /// <param name="mensaje"></param>
        /// <param name="inicio"></param>
        /// <param name="fin"></param>
        /// <param name="chofer"></param>
        /// <param name="velAlcanzada"></param>
        /// <param name="velPermitida"></param>
        /// <param name="idPuntoDeInteres"></param>
        /// <param name="texto"></param>
        /// <param name="dt"></param>
        /// <returns></returns>
        private LogMensajeBase SaveEvent(Coche coche, Dispositivo dispositivo, MensajeVO mensaje, GPSPoint inicio, GPSPoint fin, Empleado chofer, Int32?velAlcanzada, Int32?velPermitida, Int32?idPuntoDeInteres, String texto, DateTime dt)
        {
            var ticket        = DaoFactory.TicketDAO.FindEnCurso(dispositivo);
            var detalleTicket = ticket == null ? null : ticket.GetDetalleProximo();

            var driver = chofer ?? (ticket != null ? ticket.Empleado : null);

            var log = new LogMensaje
            {
                Chofer             = driver,
                Coche              = coche,
                Dispositivo        = dispositivo,
                Estado             = 0,
                Fecha              = inicio != null ? inicio.Date : (dt <= new DateTime(2010, 1, 1)) ? dt : DateTime.UtcNow,
                Expiracion         = DateTime.UtcNow.AddDays(1),
                Horario            = ticket,
                DetalleHorario     = detalleTicket,
                Usuario            = null,
                Latitud            = inicio != null ? inicio.Lat : 0,
                Longitud           = inicio != null ? inicio.Lon : 0,
                FechaFin           = fin != null ? fin.Date : (DateTime?)null,
                LatitudFin         = fin != null ? new Double?(fin.Lat) : null,
                LongitudFin        = fin != null ? new Double?(fin.Lon) : null,
                VelocidadAlcanzada = velAlcanzada,
                VelocidadPermitida = velPermitida,
                IdPuntoDeInteres   = idPuntoDeInteres,
                Mensaje            = DaoFactory.MensajeDAO.FindById(mensaje.Id),
                Texto              = string.Concat(mensaje.Texto, ' ', texto)
            };

            SaveEvent(log);

            return(log);
        }
Exemplo n.º 2
0
        protected void DiscardEvent(MensajeVO mensaje, Dispositivo dispositivo, Coche coche, Empleado chofer, DateTime fecha, GPSPoint inicio, GPSPoint fin, DiscardReason discardReason, string codigo)
        {
            STrace.Debug(GetType().FullName, dispositivo.GetId(), String.Format(
                             "Descartando: mensaje={0} coche={1} chofer={2} fecha={3} inicio={4} fin={5} discardReason={6}",
                             mensaje,
                             coche,
                             chofer,
                             fecha,
                             inicio,
                             fin,
                             discardReason));
            var log = new LogMensajeDescartado
            {
                Chofer         = chofer,
                Coche          = coche,
                Dispositivo    = dispositivo,
                Fecha          = inicio != null ? inicio.Date : fecha,
                Expiracion     = DateTime.UtcNow.AddDays(1),
                Latitud        = inicio != null ? inicio.Lat : 0,
                Longitud       = inicio != null ? inicio.Lon : 0,
                FechaFin       = fin != null ? fin.Date : (DateTime?)null,
                LatitudFin     = fin != null ? new Double?(fin.Lat) : null,
                LongitudFin    = fin != null ? new Double?(fin.Lon) : null,
                Mensaje        = mensaje != null?DaoFactory.MensajeDAO.FindById(mensaje.Id) : null,
                Texto          = mensaje != null ? mensaje.Texto : codigo,
                MotivoDescarte = (int)discardReason,
            };

            DaoFactory.LogMensajeDescartadoDAO.Save(log);
        }
Exemplo n.º 3
0
        public void SaveLogEventoDescartado(Sensor sensor, Dispositivo dispositivo, MensajeVO mensaje, GPSPoint inicio, GPSPoint fin, DiscardReason discardReason, DateTime dt)
        {
            var log = new LogMensajeDescartado
            {
                Dispositivo    = dispositivo,
                Fecha          = inicio != null ? inicio.Date : dt,
                Expiracion     = DateTime.UtcNow.AddDays(1),
                Latitud        = inicio != null ? inicio.Lat : 0,
                Longitud       = inicio != null ? inicio.Lon : 0,
                FechaFin       = fin != null ? fin.Date : (DateTime?)null,
                LatitudFin     = fin != null ? new Double?(fin.Lat) : null,
                LongitudFin    = fin != null ? new Double?(fin.Lon) : null,
                Mensaje        = mensaje != null?DaoFactory.MensajeDAO.FindById(mensaje.Id) : null,
                MotivoDescarte = discardReason.GetNumericCode()
            };

            if (DaoFactory.Session.Transaction != null && DaoFactory.Session.Transaction.IsActive)
            {
                DaoFactory.LogMensajeDescartadoDAO.SaveWithoutTransaction(log);
            }
            else
            {
                DaoFactory.LogMensajeDescartadoDAO.Save(log);
            }
        }
Exemplo n.º 4
0
        private bool DiscartInhibitor(MensajeVO mensaje, Coche coche, double latitude, double longitude)
        {
            if (mensaje == null || coche == null)
            {
                return(true);
            }

            return(mensaje.EsAlarma && GetInhibidores(coche).Any(domicilio => IsInsideInhibitor(latitude, longitude, domicilio)));
        }
Exemplo n.º 5
0
 private LogMensajeBase DiscardDueToInhibitor(Coche coche, GPSPoint inicio, MensajeVO mensaje, Dispositivo device, GPSPoint fin, Empleado driver, DateTime dt)
 {
     DiscardEvent(mensaje, device, coche, driver, dt, inicio, fin, DiscardReason.InsideInhibitor, string.Empty);
     return(null);
 }
Exemplo n.º 6
0
        private LogEvento SaveLogEvento(Dispositivo dispositivo, Sensor sensor, SubEntidad subEntidad, MensajeVO mensaje, string texto, DateTime inicio, DateTime fin)
        {
            var log = new LogEvento
            {
                Dispositivo = dispositivo,
                Sensor      = sensor,
                SubEntidad  = subEntidad,
                Mensaje     = DaoFactory.MensajeDAO.FindById(mensaje.Id),
                Fecha       = inicio,
                FechaFin    = fin,
                Expiracion  = DateTime.UtcNow.AddDays(1),
                Estado      = 0,
                Texto       = String.Concat(mensaje.Texto, ' ', texto)
            };

            SaveLogEvento(log);

            return(log);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Discards the current message because the vehicle is inside a inhibitor.
        /// </summary>
        /// <param name="coche"></param>
        /// <param name="inicio"></param>
        /// <param name="mensaje"></param>
        /// <param name="device"></param>
        /// <param name="fin"></param>
        /// <param name="driver"></param>
        /// <param name="dt"></param>
        /// <returns></returns>
        private LogMensajeBase DiscardDueToInhibitor(Coche coche, GPSPoint inicio, MensajeVO mensaje, Dispositivo device, GPSPoint fin, Empleado driver, DateTime dt)
        {
            SaveLogEventoDescartado(coche, device, mensaje, inicio, fin, driver, DiscardReason.InsideInhibitor, dt);

            return(null);
        }