| 420 | == Пријавува учество на кандидатски листи |
| 421 | Администраторот со пристап до адресата /candidatesLists добива приказ на листа со постоечки кандидатски листи и можност за креирање на нова кандидатска листа со избор на општина, реализација и изборна единица. Потоа следи одбирање на кандидатите при што бројот е лимитиран на 20, според изборниот законик во Македонија. Креирањето на кандидатската листа е исто така имплементирано во вид на трансакција, односно методот е анотиран со @Transactional. |
| 422 | {{{#!java |
| 423 | @Override |
| 424 | @Transactional |
| 425 | public CandidatesList update(Long id, String description, Long partyId, Long candidatesListElectionRealizationId, Long municipalityId, Long electoralUnitId, List<Long> candidatesInList) { |
| 426 | if(candidatesInList.size() != 20) |
| 427 | { |
| 428 | throw new RuntimeException("Candidates list must have 20 candidates!"); |
| 429 | } |
| 430 | |
| 431 | CandidatesList list; |
| 432 | |
| 433 | ElectoralUnit electoralUnit = electoralUnitId != null ? electoralUnitService.findById(electoralUnitId) : null; |
| 434 | Municipality municipality = municipalityId != null ? municipalityService.findById(municipalityId) : null; |
| 435 | CandidatesListElectionRealization candidatesListElectionRealization = candidatesListElectionRealizationService.findById(candidatesListElectionRealizationId); |
| 436 | Party party = partyService.findById(partyId); |
| 437 | |
| 438 | if (id != null) { |
| 439 | list = findById(id); |
| 440 | list.getCandidates().clear(); |
| 441 | repository.save(list); |
| 442 | } else { |
| 443 | throw new IllegalArgumentException("Id must be provided for update operation."); |
| 444 | } |
| 445 | |
| 446 | candidatesInList.stream() |
| 447 | .filter(Objects::nonNull) |
| 448 | .map(candidateService::findById) |
| 449 | .forEach(x -> list.candidates.add(x)); |
| 450 | list.setDescription(description); |
| 451 | list.setParty(party); |
| 452 | list.setMunicipality(municipality); |
| 453 | list.setElectoralUnit(electoralUnit); |
| 454 | list.setCandidatesListElectionRealization(candidatesListElectionRealization); |
| 455 | return repository.save(list); |
| 456 | } |
| 457 | }}} |