in teamcity-invitations-plugin-server/src/main/java/org/jetbrains/teamcity/invitations/CreateNewProjectInvitationType.java [41:63]
public CreateNewProjectInvitationType(@NotNull InvitationsStorage invitationsStorage,
@NotNull TeamCityCoreFacade core,
@NotNull EventDispatcher<ProjectsModelListener> events,
@NotNull InvitationLandingProvider customLandingRegistry) {
super(invitationsStorage, core, customLandingRegistry);
this.core = core;
events.addListener(new ProjectsModelListenerAdapter() {
@Override
public void projectCreated(@NotNull String projectId, @Nullable SUser user) {
SProject created = core.findProjectByIntId(projectId);
if (created != null && user != null) {
Optional<InvitationInProgress> processingInvitation = myInvitationInProgresses.stream().filter(i -> i.isOurProjectCreation(created, user)).findFirst();
if (processingInvitation.isPresent()) {
core.addRole(user, processingInvitation.get().invitation.getRole(), projectId);
processingInvitation.get().dispose();
myInvitationInProgresses.removeIf(i -> i.isOurProjectCreation(created, user));
invitationWorkflowFinished(processingInvitation.get().invitation);
Loggers.ACTIVITIES.info("User " + user.describe(false) + " creates " + created.describe(false) + " project using the invitation " + processingInvitation.get().invitation.describe(false) + "");
}
}
}
});
}