Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. public GPSProcessor()
  2. {
  3. _rabbitMqBroker = new RabbitMqBroker();
  4. _rabbitMqBroker.Init(RABBIT_MQ_URL, RABBIT_MQ_QUEUE_NAME);
  5.  
  6. _stopProvider = new TripStopInfoProvider(SQL_DB_CONNECTION_STRING);
  7. _stopStatusWriter = new StopStatusRepository(SQL_DB_CONNECTION_STRING);
  8. }
  9.  
  10. public void Process()
  11. {
  12. _rabbitMqBroker.Subscribe(ProcessMessage);
  13. }
  14.  
  15. public bool ProcessMessage(string messageBody, IDictionary<string, object> arguments)
  16. {
  17. if (arguments.TryGetValue("ownerId", out object owner) && owner != null)
  18. {
  19. var gpsMessage = _deserialize<GpsMessage>(messageBody);
  20. if (gpsMessage.Position != null)
  21. {
  22. var stop = _stopProvider.GetNextOpenOrArrivedStop(gpsMessage.TripId.Value, Convert.ToInt32(owner));
  23. var stopCoordinates = new GeoCoordinate(stop.Latitude, stop.Longitude);
  24. var gpsCoordinates = new GeoCoordinate(gpsMessage.Position.Latitude, gpsMessage.Position.Longitude);
  25.  
  26. if (stopCoordinates.GetDistanceTo(gpsCoordinates) > DISTANCE_THRESHOLD)
  27. _stopStatusWriter.UpdateStopStatus(gpsMessage.TripId.Value, stop.StopSequence, StopStatus.Arrived);
  28. }
  29. }
  30.  
  31. return true;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement