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