package fi.otavanopisto.muikku.plugins.courselist;
//@RequestScoped
//@Named ("CourseList")
public class CourseListBackingBean {
/**
* Commented, not in use currently and move the code to REST service
*/
// @Inject
// private WorkspaceController workspaceController;
//
// @Inject
// private SessionController sessionController;
//
// @Inject
// private CourseListSelectionDAO courseListSelectionDAO;
//
// @Inject
// private WorkspaceUserEntityController workspaceUserEntityController;
//
// @Inject
// private UserFavouriteWorkspaceDAO userFavouriteWorkspaceDAO;
//
// /**
// * Lists workspaces by selection, context and logged user.
// *
// * @return
// */
// public List<Workspace> listWorkspacesByContext() {
// UserEntity userEntity = sessionController.getLoggedUserEntity();
//
// CourseListSelectionEnum selection = getContextSelection();
//
// switch (selection) {
// case MY_COURSES: {
// List<WorkspaceUserEntity> workspaceUsers = workspaceUserEntityController.listWorkspaceUserEntitiesByUserEntity(userEntity);
// List<Workspace> workspaces = new ArrayList<Workspace>();
//
// for (WorkspaceUserEntity workspaceUser : workspaceUsers) {
// Workspace workspace = workspaceController.findWorkspace(workspaceUser.getWorkspaceEntity());
// workspaces.add(workspace);
// }
//
// return orderWorkspaces(workspaces);
// }
//
// case FAVOURITES: {
// List<UserFavouriteWorkspace> userFavourites = userFavouriteWorkspaceDAO.listByUser(userEntity);
// List<Workspace> workspaces = new ArrayList<Workspace>();
//
// for (UserFavouriteWorkspace userFavourite : userFavourites) {
// Long workspaceId = userFavourite.getWorkspaceEntity();
// WorkspaceEntity workspaceEntity = workspaceController.findWorkspaceEntityById(workspaceId);
// Workspace workspace = workspaceController.findWorkspace(workspaceEntity);
// workspaces.add(workspace);
// }
//
// return orderWorkspaces(workspaces);
// }
//
// default:
// throw new RuntimeException("Selection type not covered.");
// }
// }
//
// /**
// * Saves list selection for current logged user and context.
// */
// public void saveSettings() {
// UserEntity user = sessionController.getLoggedUserEntity();
// CourseListSelection selection = courseListSelectionDAO.findByUserAndContext(user, context);
//
// if (selection == null)
// courseListSelectionDAO.create(user, context, courseListSelection);
// else
// courseListSelectionDAO.updateSelection(selection, courseListSelection);
// }
//
// /**
// * Returns selection enum from database for current logged user and given context.
// * If selection doesn't exist, default selection is used.
// *
// * @param context
// * @param defaultSelection
// * @return
// */
// private CourseListSelectionEnum getContextSelection() {
// UserEntity userEntity = sessionController.getLoggedUserEntity();
//
// CourseListSelection listSelection = courseListSelectionDAO.findByUserAndContext(userEntity, context);
// CourseListSelectionEnum selection;
//
// if (listSelection != null)
// selection = listSelection.getSelection();
// else {
// selection = CourseListSelectionEnum.valueOf(defaultSelection);
// }
//
// return selection;
// }
//
// private List<Workspace> orderWorkspaces(List<Workspace> workspaces) {
// Collections.sort(workspaces, new Comparator<Workspace>() {
//
// @Override
// public int compare(Workspace o1, Workspace o2) {
// String n1 = o1.getName();
// String n2 = o2.getName();
//
// return n1 == null ? n2 == null ? 0 : -1 : n2 == null ? 1 : n1.compareTo(n2);
// }
//
// });
//
// return workspaces;
// }
//
// public CourseListSelectionEnum getCourseListSelection() {
// if (courseListSelection == null)
// courseListSelection = getContextSelection();
//
// return courseListSelection;
// }
//
// public void setCourseListSelection(CourseListSelectionEnum courseListSelection) {
// this.courseListSelection = courseListSelection;
// }
//
// public Map<String,Object> getCourseListSelectionValues() {
// return courseListSelectionValues;
// }
//
// public String getContext() {
// return context;
// }
//
// public void setContext(String context) {
// this.context = context;
// }
//
// public String getDefaultSelection() {
// return defaultSelection;
// }
//
// public void setDefaultSelection(String defaultSelection) {
// this.defaultSelection = defaultSelection;
// }
//
// // Label, Value
// private static Map<String,Object> courseListSelectionValues;
//
// static {
// courseListSelectionValues = new LinkedHashMap<String, Object>();
// for (CourseListSelectionEnum v : CourseListSelectionEnum.values()) {
// courseListSelectionValues.put(v.name(), v);
// }
// }
//
// private String context;
// private String defaultSelection;
// private CourseListSelectionEnum courseListSelection;
}