Ignore:
Timestamp:
02/02/22 14:15:35 (2 years ago)
Author:
andrejTavchioski <andrej.tavchioski@…>
Branches:
master
Children:
df4089c
Parents:
9ff45d6
Message:

backend refactoring

File:
1 edited

Legend:

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

    r9ff45d6 r9dd526f  
    44import org.springframework.stereotype.Service;
    55import parkup.data.ParkingZoneLocation;
    6 import parkup.entities.ParkingSession;
    76import parkup.entities.ParkingSpace;
    87import parkup.entities.ParkingZone;
    9 import parkup.entities.Vraboten;
     8import parkup.entities.Worker;
    109import parkup.repositories.ParkingSessionRepository;
    1110import parkup.repositories.ParkingSpaceRepository;
    1211import parkup.repositories.ParkingZoneRepository;
    13 import parkup.repositories.VrabotenRepository;
     12import parkup.repositories.WorkerRepository;
    1413
    1514import javax.transaction.Transactional;
     
    2322    private final ParkingZoneRepository parkingZoneRepository;
    2423    private final ParkingSpaceRepository parkingSpaceRepository;
    25     private final VrabotenRepository vrabotenRepository;
     24    private final WorkerRepository workerRepository;
    2625    private final ParkingSessionRepository parkingSessionRepository;
    2726
    2827    @Autowired
    29     public ParkingZoneService(ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, VrabotenRepository vrabotenRepository, ParkingSessionRepository parkingSessionRepository) {
     28    public ParkingZoneService(ParkingZoneRepository parkingZoneRepository, ParkingSpaceRepository parkingSpaceRepository, WorkerRepository workerRepository, ParkingSessionRepository parkingSessionRepository) {
    3029        this.parkingZoneRepository = parkingZoneRepository;
    3130        this.parkingSpaceRepository = parkingSpaceRepository;
    3231        this.parkingSessionRepository = parkingSessionRepository;
    33         this.vrabotenRepository = vrabotenRepository;
     32        this.workerRepository = workerRepository;
    3433    }
    3534
    3635    public List<ParkingZone> getAllParkingZones() {
    37         return parkingZoneRepository.findAll();
     36        List<ParkingZone> parkingZones= parkingZoneRepository.findAll();
     37        for(ParkingZone pz:parkingZones){
     38            setTransientVariables(pz.getId());
     39        }
     40        return parkingZones;
    3841    }
    3942
    4043    public ParkingZone findById(int parkingZoneId) {
    4144        Optional<ParkingZone> parkingZone = Optional.ofNullable(this.parkingZoneRepository.findByPzId(parkingZoneId));
    42         return parkingZone.orElse(null);
     45        if (!parkingZone.isPresent()) {
     46            throw new IllegalStateException("ParkingZone does not exist");
     47        }
     48        setTransientVariables(parkingZone.get().getId());
     49        return parkingZone.get();
    4350    }
    4451
     
    134141                    ParkingZone parkingZone = parkingZoneRepository.findByPzId(parkingZoneId);
    135142                    for (Integer vrabotenId : odgovorniLica) {
    136                         Vraboten vrabotenToAdd = vrabotenRepository.findByVrabotenId(vrabotenId);
    137                         if(vrabotenToAdd!=null)
    138                         vrabotenToAdd.getParkingZones().add(parkingZone);
     143                        Worker workerToAdd = workerRepository.findByWorkerId(vrabotenId);
     144                        if(workerToAdd !=null)
     145                        workerToAdd.getParkingZones().add(parkingZone);
    139146                    }
    140147                }
     
    158165            return parkingZoneOpt;
    159166        }
     167
     168        public int calculateTakenSpaces(int pzId){
     169            ParkingZone parkingZone=parkingZoneRepository.findByPzId(pzId);
     170            return (int)parkingZone.getParkingSpaces().stream().filter(ParkingSpace::isTaken).count();
     171        }
     172        public int calculateCapacity(int pzId){
     173            ParkingZone parkingZone=parkingZoneRepository.findByPzId(pzId);
     174            return parkingZone.getParkingSpaces().size();
     175        }
     176        public void setTransientVariables(int pzId){
     177            calculateCapacity(pzId);
     178            calculateTakenSpaces(pzId);
     179        }
    160180    }
    161181
Note: See TracChangeset for help on using the changeset viewer.