public async Task <IActionResult> GetAll() { var items = await _vehicleRepository.ListAllAsync(); var vehicleVms = Mapper.Map <IEnumerable <VehicleViewModel> >(items); vehicleVms = vehicleVms.Select(CreateLinksForVehicle); var wrapper = new LinkedCollectionResourceWrapperViewModel <VehicleViewModel>(vehicleVms); return(Ok(CreateLinksForVehicle(wrapper))); }
public async Task <IActionResult> GetPaged(QueryViewModel parameters) { var propertyMapping = new VehiclePropertyMapping(); PaginatedList <Vehicle> pagedList; if (string.IsNullOrEmpty(parameters.SearchTerm)) { pagedList = await _vehicleRepository.GetPaginatedAsync(parameters, propertyMapping); } else { pagedList = await _vehicleRepository.GetPaginatedAsync(parameters, propertyMapping, x => x.Model.Contains(parameters.SearchTerm) || x.Owner.Contains(parameters.SearchTerm)); } var vehicleVms = Mapper.Map <IEnumerable <VehicleViewModel> >(pagedList); vehicleVms = vehicleVms.Select(CreateLinksForVehicle); Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(pagedList.PaginationBase)); var wrapper = new LinkedCollectionResourceWrapperViewModel <VehicleViewModel>(vehicleVms); return(Ok(CreateLinksForVehicle(wrapper))); }
private LinkedCollectionResourceWrapperViewModel <VehicleViewModel> CreateLinksForVehicle(LinkedCollectionResourceWrapperViewModel <VehicleViewModel> vehiclesWrapper) { vehiclesWrapper.Links.Add(new LinkViewModel(_urlHelper.Link("GetAllVehicles", new { }), "get_all_vehicles", "GET")); vehiclesWrapper.Links.Add(new LinkViewModel(_urlHelper.Link("GetPagedVehicles", new { }), "get_paged_vehicles", "GET")); return(vehiclesWrapper); }