package com.plannaplan.services; import com.plannaplan.models.ConfigData; import com.plannaplan.models.FileData; import com.plannaplan.repositories.AppConfigRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Component; import java.security.DrbgParameters.Reseed; import java.util.Comparator; import java.util.List; import java.util.stream.Collector; import java.util.stream.Collectors; import com.plannaplan.configutils.*; import com.plannaplan.entities.AppConfig; /** * FileReader is used for reading xls file from input stream. */ @Component public class ConfiguratorService { @Autowired private FileToDatabaseMigrator migrator; @Autowired private AppConfigRepository configRepo; public ConfiguratorService() { } /** * methoid to config system * * @param data ConfigData containng system congis */ public void config(ConfigData data) { FileReader reader = new FileReader(data.getFilestream()); FileData coursesData = reader.read(); this.configRepo.save(new AppConfig(data.getFirstTour(), data.getSecondTour())); migrator.migrate(coursesData); } /** * current config getter * * @return AppConfig with newest config_date */ public AppConfig getCurrentConfig() { final List repsonse = this.configRepo.findAll().stream().sorted(new Comparator() { @Override public int compare(AppConfig i1, AppConfig i2) { if (i1.getConfigDate().after(i2.getConfigDate())) { return -1; } if (i1.getConfigDate().before(i2.getConfigDate())) { return 1; } return 0; } }).collect(Collectors.toList()); return repsonse.get(0); } }