private void FindNearestAirport() { var positionAsObservable = Observable.FromEvent <EventArgs <Location> >( ev => _locationService.PositionAvailable += ev, ev => _locationService.PositionAvailable -= ev); var locations = from e in positionAsObservable select new Location(e.EventArgs.Content.Latitude, e.EventArgs.Content.Longitude); locations.Subscribe(l => Messenger.Default.Send(new AirportSelectedMessage(_airportsService.GetNearestAirport(l)))); _locationService.GetPositionAsync(); }
private void PositionAvailable(Position position) { var location = new Location(position.Coords.Latitude, position.Coords.Longitude); _messenger.Publish(new AirportSelectedMessage(this, _airportsService.GetNearestAirport(location))); }