/// <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); }
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); }
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); } }
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))); }
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); }
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); }
/// <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); }