private static string GetGenericEventCode(Event message) { var data = message.GetData(); var dataS = data.ToString(CultureInfo.InvariantCulture); var identifier = message.Code; var identifierS = identifier.ToString(CultureInfo.InvariantCulture); var messageIdentifier = (MessageIdentifier)Enum.Parse(typeof(MessageIdentifier), identifierS, true); if (messageIdentifier.Equals(MessageIdentifier.RfidDetected)) { return(GetRfidAction(data, message.GetRiderId())); } if (MessageIdentifierX.IsEstadoLogistico(message.GetData())) { return(dataS); } return((identifierS == MessageCode.SpeedingTicket.GetMessageCode()) ? MessageCode.SpeedingTicket.GetMessageCode() : GetCode(identifier, data)); }
private void ProcessEvent(string code, Event generico) { string applicationCode; var esConfirmacionUbox = false; ControlarInicioDistribucionPorMensaje(code, generico); ControlarCierreDistribucionPorMensaje(code, generico); if (MessageIdentifierX.IsRfidEvent(generico.Code)) { applicationCode = ProcessRfidEvent(code, generico); } else if (MessageIdentifierX.IsEstadoLogistico(generico.GetData())) { applicationCode = ProcessEstadoLogistico(code, generico); } else if (MessageIdentifierX.IsPanicEvent(code)) { applicationCode = ProcessPanicEvent(generico, code); } else if (code.Equals(MessageCode.SpeedingTicket.GetMessageCode())) { applicationCode = ProcessVelocidadExcedidaGenericEvent(generico); } else if (MessageIdentifierX.IsConfirmacionUbox(generico.GetData())) { applicationCode = code; esConfirmacionUbox = true; // DEFINE EL PROCESAMIENTO CUANDO SABE SI TIENE UN PUNTO } else { applicationCode = ProcessGenericEvent(generico, code); } if (DaoFactory.DetalleDispositivoDAO.GetProcesarCicloLogisticoFlagValue(generico.DeviceId)) { GPSPoint point = null; if (generico.GeoPoint != null) { point = GPSPoint.Factory(generico.GeoPoint.Date, generico.GeoPoint.Lat, generico.GeoPoint.Lon); } else { var maxMonths = Coche.Empresa != null ? Coche.Empresa.MesesConsultaPosiciones : 3; var pos = DaoFactory.LogPosicionDAO.GetFirstPositionOlderThanDate(Coche.Id, generico.Tiempo, maxMonths); if (pos != null) { point = GPSPoint.Factory(generico.Tiempo, (float)pos.Latitud, (float)pos.Longitud); } } if (point != null) { if (esConfirmacionUbox) { ProcessConfirmacionUbox(code, generico, point); } else { CicloLogisticoFactory.Process(DaoFactory, applicationCode, Coche, point, generico, false, GetChofer(generico.GetRiderId())); CicloLogisticoFactory.ProcessEstadoLogistico(Coche, generico, applicationCode); } } else if (esConfirmacionUbox) { ProcessGenericEvent(generico, code); } } }