use of org.c4sg.entity.Project in project c4sg-services by Code4SocialGood.
the class SkillServiceImpl method saveSkillsForProject.
@Override
public void saveSkillsForProject(Integer id, List<String> skillsList) {
Project project = projectDAO.findById(id);
requireNonNull(project, "Project with id: " + id + " doesn't exist. Please provide a valid project id.");
List<ProjectSkill> projectSkills = new ArrayList<ProjectSkill>();
List<Skill> skills = new ArrayList<Skill>();
requireNonNull(skillsList, "Please provide the skills in display order.");
for (String skillName : skillsList) {
ProjectSkill projectSkill = new ProjectSkill();
//project
projectSkill.setProject(project);
Skill skill = skillDAO.findBySkillName(skillName);
//user entered skills
if (isNull(skill)) {
skill = new Skill();
skill.setSkillName(skillName);
//new skill to add to Skill table
skills.add(skill);
}
//skill
projectSkill.setSkill(skill);
int displayOrder = skillsList.indexOf(skillName) + 1;
//displayOrder
projectSkill.setDisplayOrder(displayOrder);
projectSkills.add(projectSkill);
}
skillDAO.save(skills);
projectSkillDAO.deleteByProjectId(id);
projectSkillDAO.save(projectSkills);
}
Aggregations