class GrantTransferDetailsViewModelPopulator {

    public GrantTransferDetailsViewModel populate(long applicationId, long questionId, long userId) {
        ApplicationResource application = applicationRestService.getApplicationById(applicationId).getSuccess();
        CompetitionResource competition = competitionRestService.getCompetitionById(application.getCompetition()).getSuccess();
        OrganisationResource organisation = organisationRestService.getByUserAndApplicationId(userId, applicationId).getSuccess();
        List<EuActionTypeResource> actionTypes = euActionTypeRestService.findAll().getSuccess();

        boolean complete = isComplete(application, organisation, questionId);
        boolean open = application.isOpen() && competition.isOpen();
        return new GrantTransferDetailsViewModel(application.getId(), application.getCompetitionName(), application.getName(), questionId,
                open, complete, actionTypes);
    }

    public  GrantTransferDetailsViewModelPopulator(ApplicationRestService applicationRestService, QuestionStatusRestService questionStatusRestService, OrganisationRestService organisationRestService, CompetitionRestService competitionRestService, ActionTypeRestService euActionTypeRestService);

}