put a little more work into quizzes

This commit is contained in:
2023-08-16 22:59:08 -06:00
parent 4def2fd689
commit 4fb257e000
12 changed files with 258 additions and 77 deletions

View File

@@ -0,0 +1,43 @@
using System.Text.RegularExpressions;
using CanvasModel.Assignments;
using CanvasModel.Modules;
using CanvasModel.Quizzes;
using LocalModels;
using Management.Services.Canvas;
namespace Management.Planner;
public static partial class QuizSyncronizationExtensions
{
internal static async Task<LocalQuiz> SyncQuizToCanvas(
this LocalCourse localCourse,
ulong canvasId,
LocalQuiz localQuiz,
IEnumerable<CanvasQuiz> canvasQuizzes,
CanvasService canvas
)
{
// TODO actually sync
return localQuiz;
}
internal static async Task<LocalCourse> SyncQuizzesWithCanvas(
this LocalCourse localCourse,
ulong canvasId,
IEnumerable<CanvasQuiz> canvasQuizzes,
CanvasService canvas
)
{
var moduleTasks = localCourse.Modules.Select(async m =>
{
var quizTasks = m.Quizzes.Select(
(q) => localCourse.SyncQuizToCanvas(canvasId, q, canvasQuizzes, canvas)
);
var quizzes = await Task.WhenAll(quizTasks);
return m with { Quizzes = quizzes };
});
var modules = await Task.WhenAll(moduleTasks);
return localCourse;
}
}