Ignore:
Timestamp:
12/24/21 23:31:23 (3 years ago)
Author:
andrejTavchioski <andrej.tavchioski@…>
Branches:
master
Children:
9dd526f
Parents:
8588fcb
Message:

Fixed some functionalities related to parkingSessions and parkingZones

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sources/app/src/main/java/parkup/services/ParkingSpaceService.java

    r8588fcb r9ff45d6  
    55import parkup.entities.ParkingSpace;
    66import parkup.repositories.ParkingSpaceRepository;
     7import parkup.repositories.ParkingZoneRepository;
    78
    89import javax.transaction.Transactional;
     
    1011import java.util.Objects;
    1112import java.util.Optional;
     13import java.util.stream.Collectors;
    1214
    1315@Service
    1416public class ParkingSpaceService {
    1517    private final ParkingSpaceRepository parkingSpaceRepository;
     18    private final ParkingZoneRepository parkingZoneRepository;
    1619
    1720    @Autowired
    18     public ParkingSpaceService(ParkingSpaceRepository parkingSpaceRepository) {
     21    public ParkingSpaceService(ParkingSpaceRepository parkingSpaceRepository, ParkingZoneRepository parkingZoneRepository) {
    1922        this.parkingSpaceRepository = parkingSpaceRepository;
     23        this.parkingZoneRepository = parkingZoneRepository;
    2024    }
    2125
     
    2933    }
    3034
    31     public Optional<ParkingSpace> addParkingSpace(ParkingSpace parkingSpace) {
    32         Optional<ParkingSpace> parkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsName(parkingSpace.getPsName()));
    33         if (parkingSpaceOpt.isPresent()) {
    34             throw new IllegalStateException("Name already taken, try adding a ParkingZone with a different name");
     35    public Optional<ParkingSpace> addParkingSpace(ParkingSpace parkingSpace,int parkingZoneId) {
     36        List<String> names = parkingZoneRepository.findByPzId(parkingZoneId).getParkingSpaces().stream().map(ParkingSpace::getPsName).collect(Collectors.toList());
     37        if (names.contains(parkingSpace.getPsName())) {
     38            throw new IllegalStateException("Name already taken, try adding a ParkingSpace with a different name");
    3539        } else {
    3640            System.out.println(parkingSpace);
    3741            parkingSpaceRepository.save(parkingSpace);
    3842        }
    39         return parkingSpaceOpt;
     43        return Optional.of(parkingSpace);
    4044    }
    4145
    4246    @Transactional
    43     public ParkingSpace updateParkingSpace(int parkingSpaceId, String psName, boolean taken, boolean handicaped, float lat, float lng) {
     47    public ParkingSpace updateParkingSpace(int parkingSpaceId, String psName, boolean taken, float lat, float lng) {
    4448        Optional<ParkingSpace> ParkingSpaceOpt = Optional.ofNullable(parkingSpaceRepository.findByPsId(parkingSpaceId));
    4549        if (ParkingSpaceOpt.isPresent()) {
     
    5862            }
    5963
    60             if (!Objects.equals(ParkingSpaceNov.isHandicaped(), handicaped)) {
    61                 ParkingSpaceNov.setHandicaped(handicaped);
    62             }
    6364
    6465            if(lat!=0 && !Objects.equals(ParkingSpaceNov.getLat(), lat)){
     
    8586        return parkingSpaceOpt;
    8687    }
     88    public long getNumberOfTakenSpaces(){
     89        return parkingSpaceRepository.findAll().stream().filter(ParkingSpace::isTaken).count();
     90    }
    8791}
Note: See TracChangeset for help on using the changeset viewer.