Example #1
0
 public RetrasoVo(ICicloLogistico cicloLogistico, DateTime fecha)
 {
     Codigo         = cicloLogistico.Codigo;
     Coche          = cicloLogistico.Interno;
     Cliente        = cicloLogistico.Cliente;
     PuntoDeEntrega = cicloLogistico.PuntoEntrega;
     Telefono       = cicloLogistico.Telefono;
     Inicio         = cicloLogistico.Iniciado.ToDisplayDateTime().ToString("dd/MM/yyyy HH:mm");
     TiempoEnCiclo  = fecha.Subtract(cicloLogistico.Iniciado);
     Atraso         = cicloLogistico.EnGeocercaDesde.HasValue ? fecha.Subtract(cicloLogistico.EnGeocercaDesde.Value) : new TimeSpan(0, 0, 0);
 }
Example #2
0
        public static void Process(Coche vehiculo, IEvent data, bool ignoreMessages)
        {
            try
            {
                if (vehiculo.Dispositivo == null)
                {
                    return;
                }

                var daoFactory   = new DAOFactory();
                var messageSaver = ignoreMessages ? null : new MessageSaver(daoFactory);

                ICicloLogistico ciclo  = null;
                var             garmin = data as GarminEvent;
                if (garmin != null && garmin.DetailId > 0)
                {
                    var detailId = Convert.ToInt32(garmin.DetailId);

                    var entrega = daoFactory.EntregaDistribucionDAO.FindById(detailId);
                    if (entrega == null)
                    {
                        STrace.Error(typeof(CicloLogisticoFactory).FullName, detailId, "No se ha encontrado una distribucion para el vehiculo (" + garmin.DetailId.ToString("#0") + ")");
                    }
                    else
                    {
                        if (entrega.Viaje == null)
                        {
                            STrace.Error(typeof(CicloLogisticoFactory).FullName, detailId, "No se ha encontrado el ticket para la entrega (" + entrega.Id + ")");
                        }
                        else
                        {
                            var ticket = entrega.Viaje;
                            ciclo = new CicloLogisticoDistribucion(ticket, daoFactory, messageSaver);
                        }
                    }
                }
                else
                {
                    ciclo = GetCiclo(vehiculo, messageSaver, daoFactory);
                }

                if (ciclo == null)
                {
                    return;
                }
                ciclo.ProcessEvent(data);
            }
            catch (Exception ex)
            {
                STrace.Exception(typeof(CicloLogisticoFactory).FullName, ex);
            }
        }