コード例 #1
0
        public virtual async Task SetGradeAsync(int columnId, int userId, MoodleGradebookGrade grade)
        {
            // Sanity check
            if (grade.Score < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(grade.Score), "The score must not be negative.");
            }

            // Retrieve affected column
            var column = await GetColumnAsync(columnId);

            // Prepare score object
            var score = new MoodleLtiScore
            {
                UserId           = userId.ToString(),
                ScoreGiven       = grade.Score,
                Comment          = grade.Comment,
                Timestamp        = grade.Timestamp,
                ScoreMaximum     = column.MaximumScore,
                ActivityProgress = ActivityProgressStatus.Completed,
                GradingProgress  = GradingProgressStatus.FullyGraded
            };

            // Store score
            await _ltiApi.UpdateScoreAsync(columnId, score);
        }