before i get in a deeper hole

This commit is contained in:
2023-08-04 11:17:55 -06:00
parent a921fd6f90
commit 9d96b7f23f
19 changed files with 218 additions and 242 deletions

View File

@@ -92,6 +92,8 @@ public class CoursePlanner
StateHasChanged?.Invoke();
var (canvasAssignments, canvasModules, canvasModuleItems) = await LoadCanvasData();
LoadingCanvasData = true;
StateHasChanged?.Invoke();
LocalCourse = LocalCourse.deleteCanvasIdsThatNoLongerExist(canvasModules, canvasAssignments);
var canvasId =
@@ -105,7 +107,7 @@ public class CoursePlanner
LocalCourse = await LocalCourse.SyncModulesWithCanvasData(canvasId, CanvasModules, canvas);
await LocalCourse.SyncAssignmentsWithCanvas(canvasId, CanvasAssignments, canvas);
LocalCourse = await LocalCourse.SyncAssignmentsWithCanvas(canvasId, CanvasAssignments, canvas);
CanvasAssignments = await canvas.Assignments.GetAll(canvasId);
await syncModuleItemsWithCanvas(canvasId);

View File

@@ -111,7 +111,7 @@ public static class CoursePlannerSyncronizationExtensions
var canvasHtmlDescription = canvasAssignment.Description;
canvasHtmlDescription = Regex.Replace(canvasHtmlDescription, "<script.*script>", "");
canvasHtmlDescription = Regex.Replace(canvasHtmlDescription, "<link .*\">", "");
canvasHtmlDescription = Regex.Replace(canvasHtmlDescription, "<link\\s+rel=\"[^\"]*\"\\s+href=\"[^\"]*\"[^>]*>", "");
var dueDatesSame = canvasAssignment.DueAt == localAssignment.due_at;
var descriptionSame = canvasHtmlDescription == localHtmlDescription;
@@ -131,11 +131,21 @@ public static class CoursePlannerSyncronizationExtensions
if (!descriptionSame)
{
Console.WriteLine();
Console.WriteLine($"descriptions different for {localAssignment.name}");
Console.WriteLine();
Console.WriteLine("Local Description:");
Console.WriteLine(localHtmlDescription);
Console.WriteLine();
Console.WriteLine("Canvas Description: ");
Console.WriteLine(canvasHtmlDescription);
Console.WriteLine();
Console.WriteLine("Canvas Raw Description: ");
Console.WriteLine(canvasAssignment.Description);
Console.WriteLine();
}
if (!nameSame)

View File

@@ -8,17 +8,33 @@ public static class CoursePlannerExtensions
{
public static LocalCourse GeneralCourseCleanup(this LocalCourse incomingCourse)
{
var modulesWithUniqueAssignments = incomingCourse.Modules.Select(
var cleanModules = incomingCourse.Modules.Select(
module =>
module with
{
Assignments = module.Assignments.OrderBy(a => a.due_at).DistinctBy(a => a.id)
Assignments = module.Assignments
.OrderBy(a => a.due_at)
.DistinctBy(a => a.id)
.Select(a => a.validateSubmissionTypes())
}
);
var cleanStartDay = new DateTime(
incomingCourse.StartDate.Year,
incomingCourse.StartDate.Month,
incomingCourse.StartDate.Day
);
var cleanEndDay = new DateTime(
incomingCourse.EndDate.Year,
incomingCourse.EndDate.Month,
incomingCourse.EndDate.Day
);
return incomingCourse with
{
Modules = modulesWithUniqueAssignments
Modules = cleanModules,
StartDate = cleanStartDay,
EndDate = cleanEndDay,
};
}
@@ -80,4 +96,17 @@ public static class CoursePlannerExtensions
}
return assignment;
}
public static LocalAssignment validateSubmissionTypes(this LocalAssignment assignment)
{
var containsDiscussion =
assignment.submission_types.FirstOrDefault(t => t == SubmissionType.discussion_topic) != null;
if (containsDiscussion)
return assignment with
{
submission_types = new string[] { SubmissionType.discussion_topic }
};
return assignment;
}
}

View File

@@ -40,7 +40,7 @@ public class CanvasAssignmentService
{
name = localAssignment.name,
submission_types = localAssignment.submission_types.Select(t => t.ToString()),
description = localAssignment.description ?? "",
description = htmlDescription,
due_at = localAssignment.due_at,
lock_at = localAssignment.lock_at,
points_possible = localAssignment.points_possible