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); }
private void PopulateRideEstimates(LyftRideEstimatesResponse rideEstimates, GetARyderResponse response) { foreach (var estimate in rideEstimates.CostEstimates) { foreach (var ride in response.Rides) { if (!ride.Type.Equals(estimate.DisplayName)) { continue; } ride.Description = $"{estimate.DisplayName}"; ride.EstimatedCost = $"${(estimate.EstimatedCostCentsMax + estimate.EstimatedCostCentsMin) / 2 / 100}"; ride.EstimatedRideDuration = ConvertToMinutes(estimate.EstimatedDurationSeconds); ride.ServiceName = $"Lyft Ride Sharing: {estimate.DisplayName}"; } } }
public void SetExpectedLyftRideEstimatesResponse(LyftRideEstimatesResponse lyftRideEstimatesResponse) { ExpectedLyftRideEstimatesResponse = lyftRideEstimatesResponse; }
public static MitGetARideResponse GetMitGetARideResponseFromLyftResponses(MitGetARideRequest mitGetARideRequest, LyftRideTypesResponse lyftRideTypesResponse, LyftDriverEtaResponse lyftDriverEtaResponse, LyftRideEstimatesResponse lyftRideEstimatesResponse, LyftNearbyDriversResponse lyftNearbyDriversResponse) { var mitGetARideResponse = new MitGetARideResponse { AccessToken = mitGetARideRequest.AccessToken, AccessTokenExpirationDate = mitGetARideRequest.AccessTokenExpirationDate, AccessManagementLoadBalalncingCookie = string.Empty, Alerts = new List <string>(), CompletionCode = string.Empty, CorrelationID = string.Empty, CurrentDateTime = DateTime.Now, ErrorID = string.Empty, InputFieldDefinitions = new List <string>(), InsiteStatus = string.Empty, NavigationOptions = new List <string>(), RideDetails = new List <MitGetARideRideDetail>(), ServiceStatus = "MSG00000", ServiceStatusMessage = string.Empty, UserSessionTokenID = string.Empty }; foreach (var rideType in lyftRideTypesResponse.RideTypes) { var mitGetARideRideDetail = new MitGetARideRideDetail { DeepAppLink = GetDeepAppLink(mitGetARideRequest.From.Latitude, mitGetARideRequest.From.Longitude, mitGetARideRequest.To.Latitude, mitGetARideRequest.To.Longitude, rideType.RideType), Description = rideType.Seats + " seats", DisplayName = rideType.DisplayName, DriverLocations = new List <MitGetARideGpsDriverLocation>(), RideType = rideType.RideType }; mitGetARideResponse.RideDetails.Add(mitGetARideRideDetail); } foreach (var rideType in mitGetARideResponse.RideDetails) { foreach (var etaType in lyftDriverEtaResponse.EtaEstimates) { if (etaType.RideType.Equals(rideType.RideType)) { rideType.EstimatedTimeOfArrival = "In " + Math.Floor(etaType.EtaSeconds / 60d) + " min"; } } } foreach (var rideType in mitGetARideResponse.RideDetails) { foreach (var rideEstimate in lyftRideEstimatesResponse.CostEstimates) { if (rideEstimate.RideType.Equals(rideType.RideType)) { var estimate = (rideEstimate.EstimatedCostCentsMax + rideEstimate.EstimatedCostCentsMin) / 2; var dollars = Math.Floor(estimate / 100d); var cents = estimate % 100; rideType.EstimatedCost = $"${dollars}.{cents}"; } } } foreach (var rideType in mitGetARideResponse.RideDetails) { foreach (var nearbyDrivers in lyftNearbyDriversResponse.NearbyDrivers) { if (nearbyDrivers.RideType.Equals(rideType.RideType)) { foreach (var nearbyDriver in nearbyDrivers.Drivers) { var driverLocation = new MitGetARideGpsDriverLocation { Latitude = nearbyDriver.Locations[(nearbyDriver.Locations.Count - 1)].Latitude, Longitude = nearbyDriver.Locations[(nearbyDriver.Locations.Count - 1)].Longitude, Direction = GetBearingOfDriver(nearbyDriver.Locations) }; rideType.DriverLocations.Add(driverLocation); } } } } return(mitGetARideResponse); }