fixed assignment rendering bug, removed canvas id from assignment

This commit is contained in:
2023-11-15 11:38:33 -07:00
parent 8d83e0ecd4
commit 2ac0449935
7 changed files with 34 additions and 111 deletions

View File

@@ -45,83 +45,6 @@ public static class CoursePlannerExtensions
};
}
public static LocalCourse deleteCanvasIdsThatNoLongerExist(
this LocalCourse localCourse,
IEnumerable<CanvasModule> canvasModules,
IEnumerable<CanvasAssignment> canvasAssignments,
IEnumerable<CanvasAssignmentGroup> canvasAssignmentGroups,
IEnumerable<CanvasQuiz> canvasQuizzes
)
{
Console.WriteLine("checking canvas ids still exist");
var correctedModules = localCourse.Modules
.Select((m) => m.validateCanvasIds(canvasModules, canvasAssignments, canvasQuizzes))
.ToArray();
var canvasAssignmentGroupIds = canvasAssignmentGroups.Select(g => g.Id).ToArray();
var correctAssignmentGroups = localCourse.Settings.AssignmentGroups.Select(
g =>
{
var groupCanvasId = g.CanvasId ?? 0;
return canvasAssignmentGroupIds.Contains(groupCanvasId)
? g
: g with { CanvasId = null };
}
).ToArray();
return localCourse with
{
Modules = correctedModules,
Settings = localCourse.Settings with
{
AssignmentGroups = correctAssignmentGroups,
}
};
}
private static LocalModule validateCanvasIds(
this LocalModule module,
IEnumerable<CanvasModule> canvasModules,
IEnumerable<CanvasAssignment> canvasAssignments,
IEnumerable<CanvasQuiz> canvasQuizzes
)
{
var moduleIdInCanvas = canvasModules.FirstOrDefault(m => m.Name == module.Name) != null;
var moduleWithAssignments = module with
{
Assignments = module.Assignments
.Select((a) => a.validateAssignmentForCanvasId(canvasAssignments))
.ToArray(),
};
if (!moduleIdInCanvas)
{
Console.WriteLine(
$"no id in canvas for module, removing old canvas id: {moduleWithAssignments.Name}"
);
return moduleWithAssignments;
}
return moduleWithAssignments;
}
private static LocalAssignment validateAssignmentForCanvasId(
this LocalAssignment assignment,
IEnumerable<CanvasAssignment> canvasAssignments
)
{
var assignmentIdInCanvas =
canvasAssignments.FirstOrDefault(ca => ca.Id == assignment.CanvasId) != null;
if (!assignmentIdInCanvas)
{
Console.WriteLine(
$"no id in canvas for assignment, removing old canvas id: {assignment.Name}"
);
return assignment with { CanvasId = null };
}
return assignment;
}
public static LocalAssignment validateSubmissionTypes(this LocalAssignment assignment)
{
var containsDiscussion =