added points to quiz editor

This commit is contained in:
2023-08-18 10:02:25 -06:00
parent 28ad344018
commit a962ef74f9
6 changed files with 77 additions and 13 deletions

View File

@@ -79,7 +79,8 @@ public class CoursePlanner
public async Task<(
IEnumerable<CanvasAssignment> CanvasAssignments,
IEnumerable<CanvasModule> CanvasModules,
Dictionary<ulong, IEnumerable<CanvasModuleItem>> CanvasModulesItems
Dictionary<ulong, IEnumerable<CanvasModuleItem>> CanvasModulesItems,
IEnumerable<CanvasQuiz> canvasQuizzes
)> LoadCanvasData()
{
LoadingCanvasData = true;
@@ -100,7 +101,7 @@ public class CoursePlanner
LoadingCanvasData = false;
StateHasChanged?.Invoke();
return (CanvasAssignments, CanvasModules, CanvasModulesItems);
return (CanvasAssignments, CanvasModules, CanvasModulesItems, CanvasQuizzes);
}
public async Task SyncWithCanvas()
@@ -118,10 +119,14 @@ public class CoursePlanner
LoadingCanvasData = true;
StateHasChanged?.Invoke();
var (canvasAssignments, canvasModules, canvasModuleItems) = await LoadCanvasData();
var (canvasAssignments, canvasModules, canvasModuleItems, canvasQuizzes) = await LoadCanvasData();
LoadingCanvasData = true;
StateHasChanged?.Invoke();
LocalCourse = LocalCourse.deleteCanvasIdsThatNoLongerExist(canvasModules, canvasAssignments);
LocalCourse = LocalCourse.deleteCanvasIdsThatNoLongerExist(
canvasModules,
canvasAssignments,
canvasQuizzes
);
var canvasId =
LocalCourse.CanvasId ?? throw new Exception("no course canvas id to sync with canvas");

View File

@@ -1,5 +1,6 @@
using CanvasModel.Assignments;
using CanvasModel.Modules;
using CanvasModel.Quizzes;
using LocalModels;
namespace Management.Planner;
@@ -43,13 +44,14 @@ public static class CoursePlannerExtensions
public static LocalCourse deleteCanvasIdsThatNoLongerExist(
this LocalCourse localCourse,
IEnumerable<CanvasModule> canvasModules,
IEnumerable<CanvasAssignment> canvasAssignments
IEnumerable<CanvasAssignment> canvasAssignments,
IEnumerable<CanvasQuiz> canvasQuizzes
)
{
Console.WriteLine("checking canvas ids still exist");
var correctedModules = localCourse.Modules
.Select((m) => m.validateCanvasIds(canvasModules, canvasAssignments))
.Select((m) => m.validateCanvasIds(canvasModules, canvasAssignments, canvasQuizzes))
.ToArray();
return localCourse with
@@ -61,7 +63,8 @@ public static class CoursePlannerExtensions
private static LocalModule validateCanvasIds(
this LocalModule module,
IEnumerable<CanvasModule> canvasModules,
IEnumerable<CanvasAssignment> canvasAssignments
IEnumerable<CanvasAssignment> canvasAssignments,
IEnumerable<CanvasQuiz> canvasQuizzes
)
{
var moduleIdInCanvas = canvasModules.FirstOrDefault(m => m.Id == module.CanvasId) != null;
@@ -69,7 +72,8 @@ public static class CoursePlannerExtensions
{
Assignments = module.Assignments
.Select((a) => a.validateAssignmentForCanvasId(canvasAssignments))
.ToArray()
.ToArray(),
Quizzes = module.Quizzes.Select((s) => s.validateQuizForCanvasId(canvasQuizzes)).ToArray()
};
if (!moduleIdInCanvas)
@@ -98,6 +102,22 @@ public static class CoursePlannerExtensions
}
return assignment;
}
private static LocalQuiz validateQuizForCanvasId(
this LocalQuiz quiz,
IEnumerable<CanvasQuiz> canvasQuizzes
)
{
var assignmentIdInCanvas =
canvasQuizzes.FirstOrDefault(cq => cq.Id == quiz.CanvasId) != null;
if (!assignmentIdInCanvas)
{
Console.WriteLine(
$"no id in canvas for quiz, removing old canvas id: {quiz.Name}"
);
return quiz with { CanvasId = null };
}
return quiz;
}
public static LocalAssignment validateSubmissionTypes(this LocalAssignment assignment)
{