public async Task <IActionResult> GetCustomerHistory(TripHistoryResourceParameters resourceParameters) { var customerId = User.Claims.FirstOrDefault(c => c.Type == Helpers.Constants.Strings.JwtClaimIdentifiers.CustomerId)?.Value; var trips = _tripsRepository.GetTripHistoriesForCustomer(Guid.Parse(customerId), resourceParameters); var prevLink = trips.HasPrevious ? _resourceUriHelper.CreateResourceUri(resourceParameters, ResourceUriType.PrevoiusPage, nameof(GetCustomerHistory)):null; var nextLink = trips.HasNext ? _resourceUriHelper.CreateResourceUri(resourceParameters, ResourceUriType.NextPage, nameof(GetCustomerHistory)) : null; Response.Headers.Add("X-Pagination", Helpers.PaginationMetadata.GeneratePaginationMetadata(trips, resourceParameters, prevLink, nextLink)); var tripsToReturn = new List <TripHistoryDto>(); foreach (var t in trips) { var from = t.From; var to = t.To; tripsToReturn.Add(new TripHistoryDto() { CustomerId = t.CustomerId, DriverId = t.DriverId, Rating = t.Rating, Id = t.Id, From = Helpers.Location.PointToPlaceDto(from), To = Helpers.Location.PointToPlaceDto(to), FinishTime = t.FinishTime, Price = t.Price, Distance = t.Distance }); } return(Ok(tripsToReturn)); }