102
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import ru.pfrf.cs.fo.core.AppResult;
import ru.pfrf.cs.fo.core.exception.RegistrationNotFoundException;
import ru.pfrf.cs.fo.core.register.db.RegisterRepository;
import ru.pfrf.cs.fo.core.register.db.entity.Registration;
import java.util.Date;
import java.util.Optional;
@Service
public class RegistrationService implements RegistrationModule {
private RegisterRepository repository;
@Autowired
public RegistrationService(RegisterRepository repository) {
this.repository = repository;
}
/**
* Получение регистрации по идентификатору
* @param regId - идентификатор регистрации
* @return объект-регистрация с заданным id
* @throws RegistrationNotFoundException
*/
@Override
public IRegistration getRegistration(long regId)
throws RegistrationNotFoundException
{
Optional<Registration> result = repository.findById(regId);
if (!result.isPresent()) throw new RegistrationNotFoundException();
return result.get();
}
/**
* Создание новой регистрации
* @param registration - рег. данные
* @return
*/
@Override
public long createRegistration(IRegistration registration) {
registration.setRegId(null);
registration = saveRegistration(registration);
return registration.getRegId();
}
/**
* Сохранение регистрации с указанным идентификатором и регистрационными
* данными
* @param regId - идентификатор регистрации
* @param registration - рег. данные
* @return рег.данные
*/
@Override
@Deprecated
public IRegistration saveRegistration(Long regId, IRegistration registration) {
registration.setRegId(regId);
repository.existsById(registration.getRegId());
return saveRegistration(registration);
}
/**
* Осуществляет фактическое сохранение в БД
* @param iRegistration - рег.данные
* @return сохраненные регистрационные данные
*/
private IRegistration saveRegistration(IRegistration iRegistration){
iRegistration = repository.save((Registration) iRegistration);
return iRegistration;