// ----------------------------------------------------------
  private NSArray<Submission> extractSubmissions(NSArray<UserSubmissionPair> userSubs) {
    NSMutableArray<Submission> submissions = new NSMutableArray<Submission>();

    for (UserSubmissionPair pair : userSubs) {
      if (pair.userHasSubmission()) {
        submissions.addObject(pair.submission());
      }
    }

    return submissions;
  }
  /**
   * Marks all the submissions shown that have been partially graded as being completed, sending
   * e-mail notifications as necessary.
   *
   * @return null to force this page to reload
   */
  public int markSubmissionsAsComplete() {
    int numberNotified = 0;

    assignmentOffering = offeringForAction;
    for (UserSubmissionPair pair : userGroup().allObjects()) {
      if (pair.userHasSubmission()) {
        Submission sub = pair.submission();

        if (sub.result().status() == Status.UNFINISHED
            || (sub.result().status() != Status.CHECK
                && !sub.assignmentOffering().assignment().usesTAScore())) {
          sub.result().setStatus(Status.CHECK);
          if (applyLocalChanges()) {
            numberNotified++;
            sub.emailNotificationToStudent("has been updated by the course staff");
          }
        }
      }
    }

    return numberNotified;
  }