diff --git a/Management/Features/Configuration/CoursePlanner.cs b/Management/Features/Configuration/CoursePlanner.cs index 008aa6a..62120de 100644 --- a/Management/Features/Configuration/CoursePlanner.cs +++ b/Management/Features/Configuration/CoursePlanner.cs @@ -114,7 +114,6 @@ public class CoursePlanner await syncAssignmentsWithCanvas(canvasId); - CanvasAssignments = await canvas.Assignments.GetAll(canvasId); CanvasModules = await canvas.GetModules(canvasId); @@ -175,9 +174,7 @@ public class CoursePlanner LocalCourse = LocalCourse with { Modules = modules }; } - private async Task syncAssignmentToCanvas( - LocalAssignment localAssignment - ) + private async Task syncAssignmentToCanvas(LocalAssignment localAssignment) { if ( LocalCourse == null @@ -208,20 +205,11 @@ public class CoursePlanner } else { - var createdAssignment = await canvas.Assignments.Create( - courseId: canvasId, - name: localAssignment.name, - submissionTypes: localAssignment.submission_types, - description: localHtmlDescription, - dueAt: localAssignment.due_at, - lockAt: localAssignment.lock_at, - pointsPossible: localAssignment.points_possible + return await canvas.Assignments.Create( + canvasId, + localAssignment, + localHtmlDescription ); - - return localAssignment with - { - canvasId = createdAssignment.Id - }; } } @@ -253,7 +241,7 @@ public class CoursePlanner var submissionTypesSame = canvasAssignment.SubmissionTypes.SequenceEqual( localAssignment.submission_types.Select(t => t.ToString()) ); - + if (!quiet) { if (!dueDatesSame) diff --git a/Management/Services/Canvas/CanvasAssignmentService.cs b/Management/Services/Canvas/CanvasAssignmentService.cs index 1b7a2d2..5bd8c3f 100644 --- a/Management/Services/Canvas/CanvasAssignmentService.cs +++ b/Management/Services/Canvas/CanvasAssignmentService.cs @@ -27,27 +27,23 @@ public class CanvasAssignmentService ); } - public async Task Create( + public async Task Create( ulong courseId, - string name, - IEnumerable submissionTypes, - string? description, - DateTime? dueAt, - DateTime? lockAt, - int? pointsPossible + LocalAssignment localAssignment, + string htmlDescription ) { - System.Console.WriteLine($"creating assignment: {name}"); + System.Console.WriteLine($"creating assignment: {localAssignment.name}"); var url = $"courses/{courseId}/assignments"; var request = new RestRequest(url); var body = new CanvasAssignmentCreationRequest() { - name = name, - submission_types = submissionTypes.Select(t => t.ToString()), - description = description ?? "", - due_at = dueAt, - lock_at = lockAt, - points_possible = pointsPossible ?? 0 + name = localAssignment.name, + submission_types = localAssignment.submission_types.Select(t => t.ToString()), + description = localAssignment.description ?? "", + due_at = localAssignment.due_at, + lock_at = localAssignment.lock_at, + points_possible = localAssignment.points_possible }; request.AddHeader("Content-Type", "application/json"); var bodyObj = new { assignment = body }; @@ -55,10 +51,12 @@ public class CanvasAssignmentService var (canvasAssignment, response) = await webRequestor.PostAsync(request); if (canvasAssignment == null) throw new Exception("created canvas assignment was null"); - return canvasAssignment with + + await CreateRubric(courseId, localAssignment); + + return localAssignment with { - DueAt = canvasAssignment.DueAt?.ToLocalTime(), - LockAt = canvasAssignment.LockAt?.ToLocalTime() + canvasId = canvasAssignment.Id }; }