public Page<PropertyDto> showAllPropertiesAsPageOfPropertyDto(Pageable pageable) { int pageSize = pageable.getPageSize(); int pageNumber = pageable.getPageNumber(); Page<PropertyDto> page = new Page<PropertyDto>(pageSize, pageNumber); List<PropertyDto> propertyDtos = new List<PropertyDto>(); List<Property> properties = propertyRepository.findAll().AsParallel().ToList(); properties.ForEach(property => propertyDtos.Skip((pageNumber - 1) * pageSize) .Take(pageSize) .ToList() .Add(new PropertyDto(property.getID().ToString(), property.name, property.type.ToString(), property.address.ToString()))) ; page.setNumberOfElements(page.getNumberOfElements() + propertyDtos.Count); page.setItems(propertyDtos); return page; }