ohctechv3/.svn/pristine/ca/cac000043f97809525e0ee98c7df1c056f7af3a6.svn-base
2024-10-28 15:03:36 +05:30

75 lines
3.4 KiB
Plaintext

package com.healthcare.ohctech.service.impl;
import com.healthcare.ohctech.dto.TrainingScheduleDto;
import com.healthcare.ohctech.entity.TrainingMaster;
import com.healthcare.ohctech.entity.TrainingSchedule;
import com.healthcare.ohctech.repository.TrainingMasterRepo;
import com.healthcare.ohctech.repository.TrainingScheduleRepo;
import com.healthcare.ohctech.service.TrainingScheduleService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
@Service
public class TrainingScheduleServiceImpl implements TrainingScheduleService {
private final TrainingScheduleRepo trainingScheduleRepo;
private final TrainingMasterRepo trainingMasterRepo;
public TrainingScheduleServiceImpl(TrainingScheduleRepo trainingScheduleRepo, TrainingMasterRepo trainingMasterRepo) {
this.trainingScheduleRepo = trainingScheduleRepo;
this.trainingMasterRepo = trainingMasterRepo;
}
@Override
public TrainingSchedule getTrainingScheduleById(Long scheduleId) {
return trainingScheduleRepo.findById(scheduleId)
.orElseThrow(() -> new RuntimeException("Training Schedule not found for ID: " + scheduleId));
}
@Override
public Page<TrainingSchedule> getAllTrainingSchedules(Pageable pageable) {
return trainingScheduleRepo.findAll(pageable);
}
@Override
public void addTrainingSchedule(TrainingScheduleDto trainingScheduleDto, Long userId) {
TrainingSchedule trainingSchedule = convertToEntity(new TrainingSchedule(), trainingScheduleDto);
trainingSchedule.setModifiedBy(userId);
trainingScheduleRepo.save(trainingSchedule);
}
@Override
public void updateTrainingSchedule(TrainingScheduleDto trainingScheduleDto, Long userId) {
Long scheduleId = trainingScheduleDto.id();
TrainingSchedule trainingSchedule = trainingScheduleRepo.findById(scheduleId)
.orElseThrow(() -> new RuntimeException("Training Schedule not found for ID: " + scheduleId));
convertToEntity(trainingSchedule, trainingScheduleDto);
trainingSchedule.setModifiedBy(userId);
trainingScheduleRepo.save(trainingSchedule);
}
@Override
public void deleteTrainingSchedule(Long scheduleId) {
TrainingSchedule trainingSchedule = trainingScheduleRepo.findById(scheduleId)
.orElseThrow(() -> new RuntimeException("Training Schedule not found for ID: " + scheduleId));
trainingScheduleRepo.delete(trainingSchedule);
}
private TrainingSchedule convertToEntity(TrainingSchedule trainingSchedule, TrainingScheduleDto trainingScheduleDto) {
trainingSchedule.setFromDate(trainingScheduleDto.fromDate());
trainingSchedule.setToDate(trainingScheduleDto.toDate());
trainingSchedule.setTrainerName(trainingScheduleDto.trainerName());
trainingSchedule.setLocation(trainingScheduleDto.location());
trainingSchedule.setRemarks(trainingScheduleDto.remarks());
trainingSchedule.setStatus(trainingScheduleDto.status());
TrainingMaster trainingMaster = trainingMasterRepo.findById(trainingScheduleDto.trainingId())
.orElseThrow(() -> new RuntimeException("Training Master not found for ID: " + trainingScheduleDto.trainingId()));
trainingSchedule.setTrainingMaster(trainingMaster);
return trainingSchedule;
}
}