public List <RideRequestDto> ConvertRequestsToDto(IEnumerable <RideRequest> entityRequests, bool isDriver) { List <RideRequestDto> dtoRequests = new List <RideRequestDto>(); int count = 0; foreach (var request in entityRequests) { dtoRequests.Add(_mapper.Map <RideRequest, RideRequestDto>(request)); var route = _routeLogic.GetRouteByRequest(request.RideRequestId); dtoRequests[count].Route = route; if (isDriver) { var user = _userLogic.GetUserByEmail(EmailType.LOGIN, request.PassengerEmail); dtoRequests[count].PassengerFirstName = user.FirstName; dtoRequests[count].PassengerLastName = user.LastName; dtoRequests[count].PassengerPhone = user.Phone; } else { var user = _userLogic.GetUserByEmail(EmailType.LOGIN, request.DriverEmail); dtoRequests[count].DriverFirstName = user.FirstName; dtoRequests[count].DriverLastName = user.LastName; dtoRequests[count].RideDateTime = request.RequestedRide.RideDateTime; } AddressDto address = _addressLogic.GetAddressById(request.AddressId); dtoRequests[count].Address = address; RideDto ride = _rideLogic.GetRideById(request.RideId); count++; } return(dtoRequests); }
public List <PassengerDto> GetPassengersByDriver(string email) { IEnumerable <Passenger> passengers = _passengerRepository.GetPassengersByDriver(email); List <PassengerDto> dtoPassengers = new List <PassengerDto>(); foreach (Passenger passenger in passengers) { passenger.Ride.Requests = passenger.Ride.Requests.Where(x => x.PassengerEmail == passenger.Email && x.Status == Db.Entities.Status.ACCEPTED).ToList(); var dtoPassenger = _mapper.Map <Passenger, PassengerDto>(passenger); var address = _addressLogic.GetAddressById(passenger.Ride.Requests[0].AddressId); var route = _routeLogic.GetRouteByRequest(passenger.Ride.Requests[0].RideRequestId); dtoPassenger.Longitude = address.Longitude; dtoPassenger.Latitude = address.Latitude; dtoPassenger.Route = route; dtoPassenger.Ride = null; dtoPassenger.Route.Rides = null; dtoPassengers.Add(dtoPassenger); } return(dtoPassengers); }