package slacknotifications.teamcity.extension.bean;
import jetbrains.buildServer.serverSide.SBuildType;
import jetbrains.buildServer.serverSide.SProject;
import slacknotifications.teamcity.TeamCityIdResolver;
import slacknotifications.teamcity.settings.SlackNotificationConfig;
import slacknotifications.teamcity.settings.SlackNotificationProjectSettings;
import java.util.ArrayList;
import java.util.List;
public class ProjectAndBuildSlacknotificationsBean {
SProject project;
SlackNotificationProjectSettings slackNotificationProjectSettings;
List<SlackNotificationConfig> projectSlacknotifications;
List<BuildSlacknotificationsBean> buildSlacknotifications;
public static ProjectAndBuildSlacknotificationsBean newInstance (SProject project, SlackNotificationProjectSettings settings, SBuildType sBuild) {
ProjectAndBuildSlacknotificationsBean bean = new ProjectAndBuildSlacknotificationsBean();
bean.project = project;
bean.slackNotificationProjectSettings = settings;
bean.projectSlacknotifications = settings.getProjectSlackNotificationsAsList();
bean.buildSlacknotifications = new ArrayList<BuildSlacknotificationsBean>();
if (sBuild != null && sBuild.getProjectId().equals(project.getProjectId())){
bean.buildSlacknotifications.add(new BuildSlacknotificationsBean(sBuild, settings.getBuildSlackNotificationsAsList(sBuild)));
}
return bean;
}
public int getProjectSlacknotificationCount(){
return this.projectSlacknotifications.size();
}
public int getBuildSlacknotificationCount(){
return this.buildSlacknotifications.size();
}
public SProject getProject() {
return project;
}
public SlackNotificationProjectSettings getSlackNotificationProjectSettings() {
return slackNotificationProjectSettings;
}
public List<SlackNotificationConfig> getProjectSlacknotifications() {
return projectSlacknotifications;
}
public List<BuildSlacknotificationsBean> getBuildSlacknotifications() {
return buildSlacknotifications;
}
public String getExternalProjectId(){
return TeamCityIdResolver.getExternalProjectId(project);
}
}