Seeder.java
package taskfusion.persistency;
import java.util.Calendar;
import java.util.Map;
import taskfusion.app.DateServer;
import taskfusion.domain.Employee;
import taskfusion.domain.Project;
import taskfusion.domain.ProjectActivity;
import taskfusion.exceptions.AlreadyExistsException;
import taskfusion.exceptions.InvalidPropertyException;
import taskfusion.exceptions.NotFoundException;
import taskfusion.exceptions.OperationNotAllowedException;
public class Seeder {
EmployeeRepository employeeRepository = EmployeeRepository.getInstance();
ProjectRepository projectRepository = ProjectRepository.getInstance();
DateServer dateServer = new DateServer();
public Seeder() {
}
public void seedDemoData() throws Exception {
seedEmployees();
seedProjects();
}
public void seedEmployees() throws Exception {
employeeRepository.create("Kasper", "Sylvest");
employeeRepository.create("Rasmus", "Wiuff");
employeeRepository.create("Mathies", "Christian");
employeeRepository.create("Max-Emil", "Scotten");
}
public void seedProjects() throws Exception {
Calendar date = dateServer.getDate();
Employee creator = EmployeeRepository.getInstance().findByInitials("kasy");
projectRepository.create("Kravspecifikationer", date).assignEmployee(creator.getInitials(), creator);
projectRepository.create("Programdesign", date).assignEmployee(creator.getInitials(), creator);
projectRepository.create("Implementering", date).assignEmployee(creator.getInitials(), creator);
projectRepository.create("Test", date).assignEmployee(creator.getInitials(), creator);
// Assign users to projects
for (Map.Entry<String, Project> projectEntry : ProjectRepository.getInstance().all().entrySet()) {
Project project = projectEntry.getValue();
seedEmployeesToProject(project, creator);
seedProjectActivitesToProject(project, creator);
}
}
private void seedEmployeesToProject(Project project, Employee user)
throws NotFoundException, OperationNotAllowedException {
project.assignEmployee("rawi", user);
project.assignEmployee("mach", user);
project.assignEmployee("masc", user);
}
private void seedProjectActivitesToProject(Project project, Employee user)
throws AlreadyExistsException, OperationNotAllowedException, InvalidPropertyException, NotFoundException {
project.createProjectActivity("Brainstorm", "2301", "2302", user);
project.createProjectActivity("Dokumentation", "2305", "2305", user);
for (ProjectActivity activity : project.getActivities()) {
seedWorktimeRegistrationsForProjectActivity(activity);
activity.setTimeBudget(30);
}
}
private void seedWorktimeRegistrationsForProjectActivity(ProjectActivity activity) throws NotFoundException, OperationNotAllowedException {
activity.registerWorkTime(employeeRepository.findByInitials("rawi"), dateServer.getDate(), 1);
activity.registerWorkTime(employeeRepository.findByInitials("rawi"), dateServer.getDate(), 5.5);
activity.registerWorkTime(employeeRepository.findByInitials("mach"), dateServer.getDate(), 1);
activity.registerWorkTime(employeeRepository.findByInitials("mach"), dateServer.getDate(), 5.5);
activity.registerWorkTime(employeeRepository.findByInitials("kasy"), dateServer.getDate(), 1);
activity.registerWorkTime(employeeRepository.findByInitials("kasy"), dateServer.getDate(), 5.5);
activity.registerWorkTime(employeeRepository.findByInitials("masc"), dateServer.getDate(), 1);
activity.registerWorkTime(employeeRepository.findByInitials("masc"), dateServer.getDate(), 5.5);
}
}