Beispiel #1
0
        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)));
        }
Beispiel #2
0
        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)));
        }
Beispiel #3
0
 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);
 }