diff --git a/Management.Test/Markdown/QuizMarkdownTests.cs b/Management.Test/Markdown/QuizMarkdownTests.cs index 1abb057..f528b4a 100644 --- a/Management.Test/Markdown/QuizMarkdownTests.cs +++ b/Management.Test/Markdown/QuizMarkdownTests.cs @@ -8,7 +8,6 @@ public class QuizMarkdownTests { var quiz = new LocalQuiz() { - Id = "string", Name = "Test Quiz", Description = @" # quiz description @@ -29,7 +28,6 @@ this is my description in markdown var markdown = quiz.ToMarkdown(); - markdown.Should().Contain("Id: string"); markdown.Should().Contain("Name: Test Quiz"); markdown.Should().Contain(quiz.Description); markdown.Should().Contain("LockAtDueDate: true"); @@ -43,7 +41,6 @@ this is my description in markdown { var quiz = new LocalQuiz() { - Id = "string", Name = "Test Quiz", Description = "desc", LockAtDueDate = true, @@ -100,7 +97,6 @@ b) false { var quiz = new LocalQuiz() { - Id = "string", Name = "Test Quiz", Description = "desc", LockAtDueDate = true, @@ -112,7 +108,7 @@ b) false AllowedAttempts = -1, Questions = new LocalQuizQuestion[] { - new LocalQuizQuestion() + new() { Id = "somesdid", Text = "oneline question", @@ -120,9 +116,9 @@ b) false QuestionType = QuestionType.MULTIPLE_ANSWERS, Answers = new LocalQuizQuestionAnswer[] { - new LocalQuizQuestionAnswer() { Correct = true, Text = "true" }, - new LocalQuizQuestionAnswer() { Correct = true, Text = "false"}, - new LocalQuizQuestionAnswer() { Correct = false, Text = "neither"}, + new() { Correct = true, Text = "true" }, + new() { Correct = true, Text = "false"}, + new() { Correct = false, Text = "neither"}, } } } diff --git a/Management.Web/Shared/Components/Quiz/DroppableQuiz.razor.cs b/Management.Web/Shared/Components/Quiz/DroppableQuiz.razor.cs index 635ac74..addde54 100644 --- a/Management.Web/Shared/Components/Quiz/DroppableQuiz.razor.cs +++ b/Management.Web/Shared/Components/Quiz/DroppableQuiz.razor.cs @@ -28,7 +28,7 @@ public class DroppableQuiz : ComponentBase if (planner.LocalCourse == null) return; var currentModule = - planner.LocalCourse.Modules.First(m => m.Quizzes.Select(q => q.Id).Contains(Quiz.Id)) + planner.LocalCourse.Modules.First(m => m.Quizzes.Select(q => q.Name + q.Description).Contains(Quiz.Name + Quiz.Description)) ?? throw new Exception("in quiz callback, could not find module"); var defaultDueTimeDate = new DateTime( @@ -41,7 +41,7 @@ public class DroppableQuiz : ComponentBase ); var NewQuizList = currentModule.Quizzes - .Select(q => q.Id != Quiz.Id ? q : q with { DueAt = defaultDueTimeDate }) + .Select(q => q.Name + q.Description != Quiz.Name + Quiz.Description ? q : q with { DueAt = defaultDueTimeDate }) .ToArray(); var updatedModule = currentModule with { Quizzes = NewQuizList }; @@ -62,11 +62,11 @@ public class DroppableQuiz : ComponentBase m.Name != dropModule.Name ? m with { - Quizzes = m.Quizzes.Where(q => q.Id != Quiz.Id).DistinctBy(q => q.Id) + Quizzes = m.Quizzes.Where(q => q.Name + q.Description != Quiz.Name + Quiz.Description).DistinctBy(q => q.Name + q.Description) } : m with { - Quizzes = m.Quizzes.Append(Quiz).DistinctBy(q => q.Id) + Quizzes = m.Quizzes.Append(Quiz).DistinctBy(q => q.Name + q.Description) } ) .ToArray(); diff --git a/Management.Web/Shared/Components/Quiz/Markdown/MarkdownQuestionPreview.razor b/Management.Web/Shared/Components/Quiz/Markdown/MarkdownQuestionPreview.razor index e98a6af..d1ccd61 100644 --- a/Management.Web/Shared/Components/Quiz/Markdown/MarkdownQuestionPreview.razor +++ b/Management.Web/Shared/Components/Quiz/Markdown/MarkdownQuestionPreview.razor @@ -6,15 +6,18 @@ } -
+
- @((MarkupString)Question.HtmlText) + points: @Question.Points
@Question.QuestionType
+ +@((MarkupString)Question.HtmlText) + @foreach(var answer in Question.Answers) { string answerPreview = answer.HtmlText.StartsWith("

") diff --git a/Management.Web/Shared/Components/Quiz/Markdown/QuizPreview.razor b/Management.Web/Shared/Components/Quiz/Markdown/QuizPreview.razor index 13cfebf..9ac9333 100644 --- a/Management.Web/Shared/Components/Quiz/Markdown/QuizPreview.razor +++ b/Management.Web/Shared/Components/Quiz/Markdown/QuizPreview.razor @@ -24,13 +24,35 @@ @if(Quiz != null) { -

Name: @Quiz.Name
-
Due At: @Quiz.DueAt
-
Lock At: @Quiz.LockAt
-
Shuffle Answers: @Quiz.ShuffleAnswers
-
Allowed Attempts: @Quiz.AllowedAttempts
-
One question at a time: @Quiz.OneQuestionAtATime
-
Assignment Group: @Quiz.LocalAssignmentGroupName
+ +
+
Name:
+
@Quiz.Name
+
+
+
Due At:
+
@Quiz.DueAt
+
+
+
Lock At:
+
@Quiz.LockAt
+
+
+
Shuffle Answers:
+
@Quiz.ShuffleAnswers
+
+
+
Allowed Attempts:
+
@Quiz.AllowedAttempts
+
+
+
One question at a time:
+
@Quiz.OneQuestionAtATime
+
+
+
Assignment Group:
+
@Quiz.LocalAssignmentGroupName
+
@Quiz.Description
diff --git a/Management.Web/Shared/Module/NewQuiz.razor b/Management.Web/Shared/Module/NewQuiz.razor index 80fe8cf..60e48f9 100644 --- a/Management.Web/Shared/Module/NewQuiz.razor +++ b/Management.Web/Shared/Module/NewQuiz.razor @@ -18,7 +18,6 @@ Console.WriteLine("new quiz"); var newQuiz = new LocalQuiz { - Id = Guid.NewGuid().ToString(), Name=Name, Description = "", }; diff --git a/Management/Features/Configuration/QuizEditorContext.cs b/Management/Features/Configuration/QuizEditorContext.cs index 528d0f2..c8a4d52 100644 --- a/Management/Features/Configuration/QuizEditorContext.cs +++ b/Management/Features/Configuration/QuizEditorContext.cs @@ -44,7 +44,7 @@ public class QuizEditorContext ? currentModule with { Quizzes = currentModule.Quizzes - .Select(q => q.Id == newQuiz.Id ? newQuiz : q) + .Select(q => q.Name + q.Description == newQuiz.Name + newQuiz.Description ? newQuiz : q) .ToArray() } : m @@ -127,7 +127,7 @@ public class QuizEditorContext private static LocalModule getCurrentModule(LocalQuiz newQuiz, LocalCourse course) { - return course.Modules.First(m => m.Quizzes.Select(q => q.Id).Contains(newQuiz.Id)) + return course.Modules.First(m => m.Quizzes.Select(q => q.Name + q.Description).Contains(newQuiz.Name + newQuiz.Description)) ?? throw new Exception("could not find current module in quiz editor context"); } } diff --git a/Management/Models/Local/LocalQuiz.cs b/Management/Models/Local/LocalQuiz.cs index 666e5f7..964d7b0 100644 --- a/Management/Models/Local/LocalQuiz.cs +++ b/Management/Models/Local/LocalQuiz.cs @@ -5,7 +5,7 @@ namespace LocalModels; public record LocalQuiz { - public required string Id { get; init; } + // public required string Id { get; init; } // public ulong? CanvasId { get; init; } = null; public required string Name { get; init; } public required string Description { get; init; } @@ -43,7 +43,6 @@ public record LocalQuiz var questionMarkdown = string.Join(questionDelimiter, questionMarkdownArray); return $@"Name: {Name} -Id: {Id} LockAtDueDate: {LockAtDueDate.ToString().ToLower()} LockAt: {LockAt} DueAt: {DueAt} @@ -88,7 +87,6 @@ Description: {Description} return new LocalQuiz() { - Id = "id-" + name, Name = name, Description = description, LockAtDueDate = lockAtDueDate,