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 PopulateRideTypes(LyftRideTypesResponse rideTypes, GetARyderResponse response) { foreach (var type in rideTypes.RideTypes) { var newRide = new GetARyderRide { Type = type.DisplayName }; response.Rides.Add(newRide); } }
public void SetExpectedLyftRideTypesResponse(LyftRideTypesResponse lyftRideTypesResponse) { ExpectedLyftRideTypesResponse = lyftRideTypesResponse; }
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); }