Beispiel #1
0
        private void SendMessageToGarmin(string msgText, ViajeDistribucion distribucion)
        {
            var message = MessageSender.CreateSubmitTextMessage(distribucion.Vehiculo.Dispositivo, new MessageSaver(DaoFactory));

            message.AddMessageText(msgText).AddTextMessageId((uint)distribucion.Id + 200);
            message.Send();
            Logger.InfoFormat("Se notifico servicio {0} al vehiculo {1} [{2}]", distribucion.Codigo, distribucion.Vehiculo.Patente, msgText);

            var destinations = distribucion.Detalles.Where(d => d.PuntoEntrega != null &&
                                                           d.ReferenciaGeografica != null &&
                                                           Math.Abs(d.ReferenciaGeografica.Latitude) < 90 &&
                                                           Math.Abs(d.ReferenciaGeografica.Longitude) < 180)
                               .Select(d => new Destination(d.Id, new GPSPoint(DateTime.UtcNow,
                                                                               (float)d.ReferenciaGeografica.Latitude,
                                                                               (float)d.ReferenciaGeografica.Longitude),
                                                            d.Descripcion,
                                                            d.PuntoEntrega.Descripcion,
                                                            d.ReferenciaGeografica.Direccion.Descripcion))
                               .ToArray();

            var msg = MessageSender.CreateUnloadRoute(distribucion.Vehiculo.Dispositivo, new MessageSaver(DaoFactory))
                      .AddRouteId(distribucion.Id)
                      .AddDestinations(destinations);

            msg.Send();
        }