private AssessmentIOWriteResult saveAssessment(AssessmentData assessment, String username)
      throws RegionConflictException {
    if (assessment.getType().equals(BaseAssessment.DRAFT_ASSESSMENT_STATUS)) {
      List<AssessmentData> compareTo =
          AssessmentIO.readAllDraftAssessments(vfs, assessment.getSpeciesID());

      for (AssessmentData cur : compareTo) {
        if (cur.getRegionIDs().containsAll(assessment.getRegionIDs())
            || cur.isGlobal() && assessment.isGlobal()) {
          if (!cur.getAssessmentID().equals(assessment.getAssessmentID()))
            throw new RegionConflictException();
        }
      }
    }

    return AssessmentIO.writeAssessment(assessment, username, vfs, true);
  }