示例#1
0
 public Task Handle(TLEcoDriverAlertEvent notification, CancellationToken cancellationToken)
 {
     _context.VehicleAlerts.Add(new VehicleAlert
     {
         Id = Guid.NewGuid(),
         VehicleEventType = notification.VehicleEventType,
         EventUtc         = notification.EventUtc,
         CustomerId       = (Guid)notification.CustomerId,
         VehicleId        = notification.VehicleId
     });
     return(_context.SaveChangesAsync(cancellationToken));
 }
示例#2
0
        private TLEcoDriverAlertEvent ProceedEcoDriverEvents(CreateTeltonikaGps data, Guid vehicleId, Guid?customerId)
        {
            var @event = default(TLEcoDriverAlertEvent);

            if (data.DataEventIO == (int)TNIoProperty.Engine_speed_X)
            {
                @event = new TLEcoDriverAlertEvent
                {
                    Id               = Guid.NewGuid(),
                    CustomerId       = customerId,
                    VehicleId        = vehicleId,
                    VehicleEventType = VehicleEvent.EXCESS_ENGINE_SPEED,
                    EventUtc         = data.DateTimeUtc,
                    Latitude         = (float?)data.Lat,
                    Longitude        = (float?)data.Long,
                    Address          = data.Address
                                       //Speed = data.Speed
                }
            }
            ;
            else if (data.AllIoElements.ContainsKey(TNIoProperty.ECO_driving_type))
            {
                switch (Convert.ToByte(data.AllIoElements[TNIoProperty.ECO_driving_type]))
                {
                case 1:
                    if (Convert.ToByte(data.AllIoElements[TNIoProperty.ECO_driving_value]) > 31)
                    {
                        @event = new TLEcoDriverAlertEvent
                        {
                            Id               = Guid.NewGuid(),
                            CustomerId       = customerId,
                            VehicleId        = vehicleId,
                            VehicleEventType = VehicleEvent.EXCESS_ACCELERATION,
                            EventUtc         = data.DateTimeUtc,
                            Latitude         = (float?)data.Lat,
                            Longitude        = (float?)data.Long,
                            Address          = data.Address
                                               //Speed = data.Speed
                        }
                    }
                    ;
                    break;

                case 2:
                    if (Convert.ToByte(data.AllIoElements[TNIoProperty.ECO_driving_value]) > 38)
                    {
                        @event = new TLEcoDriverAlertEvent
                        {
                            Id               = Guid.NewGuid(),
                            CustomerId       = customerId,
                            VehicleId        = vehicleId,
                            VehicleEventType = VehicleEvent.SUDDEN_BRAKING,
                            EventUtc         = data.DateTimeUtc,
                            Latitude         = (float?)data.Lat,
                            Longitude        = (float?)data.Long,
                            Address          = data.Address
                                               //Speed = data.Speed
                        }
                    }
                    ;
                    break;

                case 3:
                    if (Convert.ToByte(data.AllIoElements[TNIoProperty.ECO_driving_value]) > 45)
                    {
                        @event = new TLEcoDriverAlertEvent
                        {
                            Id               = Guid.NewGuid(),
                            CustomerId       = customerId,
                            VehicleId        = vehicleId,
                            VehicleEventType = VehicleEvent.FAST_CORNER,
                            EventUtc         = data.DateTimeUtc,
                            Latitude         = (float?)data.Lat,
                            Longitude        = (float?)data.Long,
                            Address          = data.Address
                                               //Speed = data.Speed
                        }
                    }
                    ;
                    break;

                default:
                    break;
                }
            }
            return(@event);
        }