create rubric when creating assignment as well

This commit is contained in:
2023-07-31 16:31:48 -06:00
parent 17734ab641
commit 12c323e874
2 changed files with 21 additions and 35 deletions

View File

@@ -114,7 +114,6 @@ public class CoursePlanner
await syncAssignmentsWithCanvas(canvasId); await syncAssignmentsWithCanvas(canvasId);
CanvasAssignments = await canvas.Assignments.GetAll(canvasId); CanvasAssignments = await canvas.Assignments.GetAll(canvasId);
CanvasModules = await canvas.GetModules(canvasId); CanvasModules = await canvas.GetModules(canvasId);
@@ -175,9 +174,7 @@ public class CoursePlanner
LocalCourse = LocalCourse with { Modules = modules }; LocalCourse = LocalCourse with { Modules = modules };
} }
private async Task<LocalAssignment> syncAssignmentToCanvas( private async Task<LocalAssignment> syncAssignmentToCanvas(LocalAssignment localAssignment)
LocalAssignment localAssignment
)
{ {
if ( if (
LocalCourse == null LocalCourse == null
@@ -208,20 +205,11 @@ public class CoursePlanner
} }
else else
{ {
var createdAssignment = await canvas.Assignments.Create( return await canvas.Assignments.Create(
courseId: canvasId, canvasId,
name: localAssignment.name, localAssignment,
submissionTypes: localAssignment.submission_types, localHtmlDescription
description: localHtmlDescription,
dueAt: localAssignment.due_at,
lockAt: localAssignment.lock_at,
pointsPossible: localAssignment.points_possible
); );
return localAssignment with
{
canvasId = createdAssignment.Id
};
} }
} }
@@ -253,7 +241,7 @@ public class CoursePlanner
var submissionTypesSame = canvasAssignment.SubmissionTypes.SequenceEqual( var submissionTypesSame = canvasAssignment.SubmissionTypes.SequenceEqual(
localAssignment.submission_types.Select(t => t.ToString()) localAssignment.submission_types.Select(t => t.ToString())
); );
if (!quiet) if (!quiet)
{ {
if (!dueDatesSame) if (!dueDatesSame)

View File

@@ -27,27 +27,23 @@ public class CanvasAssignmentService
); );
} }
public async Task<CanvasAssignment> Create( public async Task<LocalAssignment> Create(
ulong courseId, ulong courseId,
string name, LocalAssignment localAssignment,
IEnumerable<SubmissionType> submissionTypes, string htmlDescription
string? description,
DateTime? dueAt,
DateTime? lockAt,
int? pointsPossible
) )
{ {
System.Console.WriteLine($"creating assignment: {name}"); System.Console.WriteLine($"creating assignment: {localAssignment.name}");
var url = $"courses/{courseId}/assignments"; var url = $"courses/{courseId}/assignments";
var request = new RestRequest(url); var request = new RestRequest(url);
var body = new CanvasAssignmentCreationRequest() var body = new CanvasAssignmentCreationRequest()
{ {
name = name, name = localAssignment.name,
submission_types = submissionTypes.Select(t => t.ToString()), submission_types = localAssignment.submission_types.Select(t => t.ToString()),
description = description ?? "", description = localAssignment.description ?? "",
due_at = dueAt, due_at = localAssignment.due_at,
lock_at = lockAt, lock_at = localAssignment.lock_at,
points_possible = pointsPossible ?? 0 points_possible = localAssignment.points_possible
}; };
request.AddHeader("Content-Type", "application/json"); request.AddHeader("Content-Type", "application/json");
var bodyObj = new { assignment = body }; var bodyObj = new { assignment = body };
@@ -55,10 +51,12 @@ public class CanvasAssignmentService
var (canvasAssignment, response) = await webRequestor.PostAsync<CanvasAssignment>(request); var (canvasAssignment, response) = await webRequestor.PostAsync<CanvasAssignment>(request);
if (canvasAssignment == null) if (canvasAssignment == null)
throw new Exception("created canvas assignment was null"); throw new Exception("created canvas assignment was null");
return canvasAssignment with
await CreateRubric(courseId, localAssignment);
return localAssignment with
{ {
DueAt = canvasAssignment.DueAt?.ToLocalTime(), canvasId = canvasAssignment.Id
LockAt = canvasAssignment.LockAt?.ToLocalTime()
}; };
} }