private void PopulateRideEtas(LyftRideEtasResponse rideEtas, GetARyderResponse response)
        {
            response.Timezone = rideEtas.Timezone;

            foreach (var pickupEta in rideEtas.NearbyDriversPickupEtas)
            {
                foreach (var ride in response.Rides)
                {
                    if (!ride.Type.Equals(pickupEta.DisplayName))
                    {
                        continue;
                    }

                    if (pickupEta.PickupDurationRange == null)
                    {
                        pickupEta.PickupDurationRange = new LyftPickupDurationRange();
                    }

                    ride.EstimatedEta = ConvertToMinutes(pickupEta.PickupDurationRange.DurationMs / 1000);

                    foreach (var driver in pickupEta.NearbyDrivers)
                    {
                        var newDriver = new GetARyderDriver {
                            Bearing = CalculateBearing(driver.Locations)
                        };
                        newDriver.Location.Latitude  = driver.Locations[0].Latitude;
                        newDriver.Location.Longitude = driver.Locations[0].Longitude;
                        ride.NearbyDrivers.Add(newDriver);
                    }
                }
            }
        }
        public void Transform(GetARyderRequest request, LyftRideTypesResponse rideTypes,
                              LyftRideEstimatesResponse rideEstimates, LyftRideEtasResponse rideEtas, GetARyderResponse response)
        {
            PopulateRideTypes(rideTypes, response);
            PopulateRideEstimates(rideEstimates, response);
            PopulateRideEtas(rideEtas, response);

            response.DeepAppLink = CreateDeepAppLink("Lyft", request);
        }
Esempio n. 3
0
 public void SetExpectedLyftRideEtasResponse(LyftRideEtasResponse lyftRideEtasResponse)
 {
     ExpectedLyftRideEtasResponse = lyftRideEtasResponse;
 }