diff --git a/Management.Web/Pages/QuizFormPage.razor b/Management.Web/Pages/QuizFormPage.razor
index c5a5113..01d5136 100644
--- a/Management.Web/Pages/QuizFormPage.razor
+++ b/Management.Web/Pages/QuizFormPage.razor
@@ -57,10 +57,10 @@
if (quizContext.Quiz == null)
{
var quiz = planner
- .LocalCourse?
- .Modules
- .SelectMany(m => m.Quizzes)
- .FirstOrDefault(q => q.Name == QuizName);
+ .LocalCourse?
+ .Modules
+ .SelectMany(m => m.Quizzes)
+ .FirstOrDefault(q => q.Name == QuizName);
quizContext.Quiz = quiz;
logger.LogInformation($"set quiz to '{quizContext.Quiz?.Name}'");
@@ -165,8 +165,12 @@
{
-
+
diff --git a/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor b/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor
index 82ceed0..eab83d7 100644
--- a/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor
+++ b/Management.Web/Shared/Components/AssignmentForm/AssignmentForm.razor
@@ -1,6 +1,7 @@
@using Management.Web.Shared.Components
@using Management.Web.Shared.Components.AssignmentForm
@using Management.Web.Shared.Components.Forms
+@using CanvasModel.Assignments
@inject CoursePlanner planner
@inject CanvasService canvas
@@ -27,7 +28,7 @@
assignmentContext.StateHasChanged -= reload;
}
- private void OnHide()
+ private void OnHide()
{
assignmentContext.Assignment = null;
name = "";
@@ -36,6 +37,9 @@
private string name { get; set; } = String.Empty;
private bool lockAtDueDate { get; set; }
+ private bool addingAssignmentToCanvas = false;
+ private bool deletingAssignmentFromCanvas = false;
+
private void submitHandler()
{
if (assignmentContext.Assignment != null)
@@ -65,22 +69,24 @@
) ?? throw new Exception("handling assignment delete, could not find module");
var newModules = planner.LocalCourse.Modules.Select(m =>
- m.Name == currentModule.Name
- ? m with
- {
- Assignments = m.Assignments.Where(a => a != assignment).ToArray()
- }
- : m
- ).ToArray();
+ m.Name == currentModule.Name
+ ? m with
+ {
+ Assignments = m.Assignments.Where(a => a != assignment).ToArray()
+ }
+ : m
+ )
+ .ToArray();
planner.LocalCourse = planner.LocalCourse with
{
Modules = newModules
};
- if (assignment.CanvasId != null && planner.LocalCourse.Settings.CanvasId != null)
+
+ if (assignmentInCanvas != null && planner.LocalCourse.Settings.CanvasId != null)
{
ulong courseId = planner.LocalCourse.Settings.CanvasId ?? throw new Exception("cannot delete if no course id");
- await canvas.Assignments.Delete(courseId, assignment);
+ await canvas.Assignments.Delete(courseId, assignmentInCanvas.Id, assignment.Name);
}
}
}
@@ -100,35 +106,64 @@
{
var lockAtDueDate = (bool)(e.Value ?? false);
var lockAtDate = lockAtDueDate
- ? assignmentContext.Assignment.DueAt
- : assignmentContext.Assignment.LockAt;
- var newAssignment = assignmentContext.Assignment with {
- LockAtDueDate = lockAtDueDate,
- LockAt = lockAtDate,
- };
+ ? assignmentContext.Assignment.DueAt
+ : assignmentContext.Assignment.LockAt;
+ var newAssignment = assignmentContext.Assignment with
+ {
+ LockAtDueDate = lockAtDueDate,
+ LockAt = lockAtDate,
+ };
assignmentContext.SaveAssignment(newAssignment);
}
}
private void setAssignmentGroup(LocalAssignmentGroup? group)
{
- if(assignmentContext.Assignment == null)
+ if (assignmentContext.Assignment == null)
return;
-
- var newAssignment = assignmentContext.Assignment with
- {
- LocalAssignmentGroupId = group?.Id
- };
+
+ var newAssignment = assignmentContext.Assignment with
+ {
+ LocalAssignmentGroupId = group?.Id
+ };
assignmentContext.SaveAssignment(newAssignment);
}
private LocalAssignmentGroup? selectedAssignmentGroup =>
planner
- .LocalCourse?
- .Settings
- .AssignmentGroups
- .FirstOrDefault(g => g.Id == assignmentContext.Assignment?.LocalAssignmentGroupId);
+ .LocalCourse?
+ .Settings
+ .AssignmentGroups
+ .FirstOrDefault(g => g.Id == assignmentContext.Assignment?.LocalAssignmentGroupId);
+
+ private async Task addToCanvas()
+ {
+ addingAssignmentToCanvas = true;
+ await assignmentContext.AddAssignmentToCanvas();
+ await planner.LoadCanvasData();
+ addingAssignmentToCanvas = false;
+ }
+
+ private CanvasAssignment? assignmentInCanvas =>
+ planner.CanvasAssignments?.FirstOrDefault(a => a.Name == assignmentContext.Assignment?.Name);
+
+ private string canvasAssignmentUrl =>
+ $"https://snow.instructure.com/courses/{planner.LocalCourse?.Settings.CanvasId}/assignments/{assignmentInCanvas?.Id}";
+
+ private async Task deleteFromCanvas()
+ {
+ if (assignmentInCanvas == null || planner.LocalCourse.Settings.CanvasId == null || assignmentContext.Assignment == null)
+ return;
+ deletingAssignmentFromCanvas = true;
+ await canvas.Assignments.Delete(
+ (ulong)planner.LocalCourse.Settings.CanvasId,
+ assignmentInCanvas.Id,
+ assignmentContext.Assignment.Name);
+ await planner.LoadCanvasData();
+ StateHasChanged();
+ deletingAssignmentFromCanvas = false;
+ }
}
@assignmentContext.Assignment?.Name
@@ -136,38 +171,26 @@
@if (assignmentContext.Assignment != null)
{
-
-
-
-
+ Name
+
+
+
+
-
-
@@ -185,16 +208,41 @@
+ @if (assignmentInCanvas != null)
+ {
+
+ View in Canvas
+
+
+ }
+
+@if (addingAssignmentToCanvas || deletingAssignmentFromCanvas)
+{
+