package eu.eudat.managers; import eu.eudat.entities.DMP; import eu.eudat.entities.UserInfo; import eu.eudat.models.invitation.Invitation; import eu.eudat.models.security.Principal; import eu.eudat.models.userinfo.UserInfoInvitationModel; import eu.eudat.models.userinfo.UserInfoRequestItem; import eu.eudat.queryable.QueryableList; import eu.eudat.services.ApiContext; import eu.eudat.utilities.builders.DomainModelConverter; import java.util.List; import java.util.stream.Collectors; /** * Created by ikalyvas on 1/4/2018. */ public class InvitationsManager { public static void inviteUsers(ApiContext apiContext, Invitation invitation, Principal principal) { UserInfo principalUser = new UserInfo(); principalUser.setId(principal.getId()); List alreadySignedInUsers = invitation.getUsers().stream().filter(item -> item.getId() != null).collect(Collectors.toList()); List alreadySignedInUsersEntities = new DomainModelConverter().toDataModel(alreadySignedInUsers); DMP dataManagementPlan = apiContext.getDatabaseRepository().getDmpDao().find(invitation.getDataManagementPlan()); apiContext.getInvitationService().createInvitations(apiContext.getDatabaseRepository().getInvitationDao(),new DomainModelConverter().toDataModel(invitation.getUsers()),dataManagementPlan,principalUser); apiContext.getInvitationService().assignToDmp(apiContext.getDatabaseRepository().getDmpDao(), alreadySignedInUsersEntities, dataManagementPlan); apiContext.getInvitationService().sendInvitations(invitation.getUsers()); } public static List getUsers(ApiContext apiContext,UserInfoRequestItem userInfoRequestItem) throws InstantiationException, IllegalAccessException { QueryableList users = apiContext.getDatabaseRepository().getUserInfoDao().getWithCriteria(userInfoRequestItem.getCriteria()); List userModels = new DomainModelConverter().fromDataModel(users.toList(),UserInfoInvitationModel.class); return userModels; } }