/// <summary>
        /// Constructor.
        /// </summary>
        public AssignmentSubmissionViewModel(
            AssignmentSubmissionResult result,
            IAssignmentUrlProvider urlProvider,
            ITimeZoneProvider timeZoneProvider)
        {
            var submissionUrl = urlProvider.GetAssignmentSubmissionUrl(
                result.AssignmentId,
                result.SubmissionDate,
                result.UserId);

            SubmissionDate = GetLink
                             (
                submissionUrl,
                result.SubmissionDate.FormatShortDateTime(timeZoneProvider),
                preventWrapping: true
                             );

            Score = GetColoredText
                    (
                "black",
                $"{result.Score} / {result.AssignmentPoints}",
                bold: false,
                preventWrapping: true
                    );

            Status = GetColoredText
                     (
                result.Status.GetColor(),
                result.Status.GetText(),
                result.Status.GetBold(),
                preventWrapping: true
                     );

            QuestionResults = result.QuestionResults
                              .Select
                              (
                qr => new StudentQuestionResultViewModel
                (
                    qr,
                    urlProvider,
                    timeZoneProvider
                )
                              ).ToList();
        }
Example #2
0
 /// <summary>
 /// Returns the score and status of an assignment submission result.
 /// </summary>
 private Tuple <double, bool> GetScoreAndStatus(AssignmentSubmissionResult result)
 {
     return(new Tuple <double, bool>(result.Score, result.Status.Late));
 }