mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 07:38:33 -06:00
changed casing of local assets
This commit is contained in:
@@ -149,7 +149,7 @@ public class CoursePlanner
|
||||
)
|
||||
{
|
||||
var localItemsWithCorrectOrder = localModule.Assignments
|
||||
.OrderBy(a => a.due_at)
|
||||
.OrderBy(a => a.DueAt)
|
||||
.Select((a, i) => (Assignment: a, Position: i + 1));
|
||||
|
||||
var canvasContentIdsByCurrentPosition =
|
||||
@@ -160,9 +160,9 @@ public class CoursePlanner
|
||||
{
|
||||
var itemIsInCorrectOrder =
|
||||
canvasContentIdsByCurrentPosition.ContainsKey(position)
|
||||
&& canvasContentIdsByCurrentPosition[position] == localAssignment.canvasId;
|
||||
&& canvasContentIdsByCurrentPosition[position] == localAssignment.CanvasId;
|
||||
|
||||
var currentCanvasItem = canvasModuleItems.First(i => i.ContentId == localAssignment.canvasId);
|
||||
var currentCanvasItem = canvasModuleItems.First(i => i.ContentId == localAssignment.CanvasId);
|
||||
if (!itemIsInCorrectOrder)
|
||||
{
|
||||
await canvas.UpdateModuleItem(
|
||||
@@ -187,15 +187,15 @@ public class CoursePlanner
|
||||
foreach (var localAssignment in localModule.Assignments)
|
||||
{
|
||||
var canvasModuleItemContentIds = CanvasModulesItems[moduleCanvasId].Select(i => i.ContentId);
|
||||
if (!canvasModuleItemContentIds.Contains(localAssignment.canvasId))
|
||||
if (!canvasModuleItemContentIds.Contains(localAssignment.CanvasId))
|
||||
{
|
||||
var canvasAssignmentId =
|
||||
localAssignment.canvasId
|
||||
localAssignment.CanvasId
|
||||
?? throw new Exception("cannot create module item if assignment does not have canvas id");
|
||||
await canvas.CreateModuleItem(
|
||||
canvasId,
|
||||
moduleCanvasId,
|
||||
localAssignment.name,
|
||||
localAssignment.Name,
|
||||
"Assignment",
|
||||
canvasAssignmentId
|
||||
);
|
||||
|
||||
@@ -6,7 +6,7 @@ using Management.Services.Canvas;
|
||||
|
||||
namespace Management.Planner;
|
||||
|
||||
public static class CoursePlannerSyncronizationExtensions
|
||||
public static partial class CoursePlannerSyncronizationExtensions
|
||||
{
|
||||
internal static async Task EnsureAllModulesExistInCanvas(
|
||||
this LocalCourse localCourse,
|
||||
@@ -73,7 +73,7 @@ public static class CoursePlannerSyncronizationExtensions
|
||||
)
|
||||
{
|
||||
var canvasAssignment = canvasAssignments.FirstOrDefault(
|
||||
ca => ca.Id == localAssignment.canvasId
|
||||
ca => ca.Id == localAssignment.CanvasId
|
||||
);
|
||||
string localHtmlDescription = localAssignment.GetDescriptionHtml(
|
||||
localCourse.AssignmentTemplates
|
||||
@@ -105,34 +105,34 @@ public static class CoursePlannerSyncronizationExtensions
|
||||
bool quiet = true
|
||||
)
|
||||
{
|
||||
var canvasAssignment = canvasAssignments.First(ca => ca.Id == localAssignment.canvasId);
|
||||
var canvasAssignment = canvasAssignments.First(ca => ca.Id == localAssignment.CanvasId);
|
||||
|
||||
var localHtmlDescription = localAssignment.GetDescriptionHtml(courseAssignmentTemplates);
|
||||
|
||||
var canvasHtmlDescription = canvasAssignment.Description;
|
||||
canvasHtmlDescription = Regex.Replace(canvasHtmlDescription, "<script.*script>", "");
|
||||
canvasHtmlDescription = Regex.Replace(canvasHtmlDescription, "<link\\s+rel=\"[^\"]*\"\\s+href=\"[^\"]*\"[^>]*>", "");
|
||||
canvasHtmlDescription = CanvasScriptTagRegex().Replace(canvasHtmlDescription, "");
|
||||
canvasHtmlDescription = CanvasLinkTagRegex().Replace(canvasHtmlDescription, "");
|
||||
|
||||
var dueDatesSame = canvasAssignment.DueAt == localAssignment.due_at;
|
||||
var dueDatesSame = canvasAssignment.DueAt == localAssignment.DueAt;
|
||||
var descriptionSame = canvasHtmlDescription == localHtmlDescription;
|
||||
var nameSame = canvasAssignment.Name == localAssignment.name;
|
||||
var lockDateSame = canvasAssignment.LockAt == localAssignment.lock_at;
|
||||
var pointsSame = canvasAssignment.PointsPossible == localAssignment.points_possible;
|
||||
var nameSame = canvasAssignment.Name == localAssignment.Name;
|
||||
var lockDateSame = canvasAssignment.LockAt == localAssignment.LockAt;
|
||||
var pointsSame = canvasAssignment.PointsPossible == localAssignment.PointsPossible;
|
||||
var submissionTypesSame = canvasAssignment.SubmissionTypes.SequenceEqual(
|
||||
localAssignment.submission_types.Select(t => t.ToString())
|
||||
localAssignment.SubmissionTypes.Select(t => t.ToString())
|
||||
);
|
||||
|
||||
if (!quiet)
|
||||
{
|
||||
if (!dueDatesSame)
|
||||
Console.WriteLine(
|
||||
$"Due dates different for {localAssignment.name}, local: {localAssignment.due_at}, in canvas {canvasAssignment.DueAt}"
|
||||
$"Due dates different for {localAssignment.Name}, local: {localAssignment.DueAt}, in canvas {canvasAssignment.DueAt}"
|
||||
);
|
||||
|
||||
if (!descriptionSame)
|
||||
{
|
||||
Console.WriteLine();
|
||||
Console.WriteLine($"descriptions different for {localAssignment.name}");
|
||||
Console.WriteLine($"descriptions different for {localAssignment.Name}");
|
||||
Console.WriteLine();
|
||||
|
||||
Console.WriteLine("Local Description:");
|
||||
@@ -144,25 +144,23 @@ public static class CoursePlannerSyncronizationExtensions
|
||||
Console.WriteLine("Canvas Raw Description: ");
|
||||
Console.WriteLine(canvasAssignment.Description);
|
||||
Console.WriteLine();
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (!nameSame)
|
||||
Console.WriteLine(
|
||||
$"names different for {localAssignment.name}, local: {localAssignment.name}, in canvas {canvasAssignment.Name}"
|
||||
$"names different for {localAssignment.Name}, local: {localAssignment.Name}, in canvas {canvasAssignment.Name}"
|
||||
);
|
||||
if (!lockDateSame)
|
||||
Console.WriteLine(
|
||||
$"Lock Dates different for {localAssignment.name}, local: {localAssignment.lock_at}, in canvas {canvasAssignment.LockAt}"
|
||||
$"Lock Dates different for {localAssignment.Name}, local: {localAssignment.LockAt}, in canvas {canvasAssignment.LockAt}"
|
||||
);
|
||||
if (!pointsSame)
|
||||
Console.WriteLine(
|
||||
$"Points different for {localAssignment.name}, local: {localAssignment.points_possible}, in canvas {canvasAssignment.PointsPossible}"
|
||||
$"Points different for {localAssignment.Name}, local: {localAssignment.PointsPossible}, in canvas {canvasAssignment.PointsPossible}"
|
||||
);
|
||||
if (!submissionTypesSame)
|
||||
Console.WriteLine(
|
||||
$"Submission Types different for {localAssignment.name}, local: {JsonSerializer.Serialize(localAssignment.submission_types.Select(t => t.ToString()))}, in canvas {JsonSerializer.Serialize(canvasAssignment.SubmissionTypes)}"
|
||||
$"Submission Types different for {localAssignment.Name}, local: {JsonSerializer.Serialize(localAssignment.SubmissionTypes.Select(t => t.ToString()))}, in canvas {JsonSerializer.Serialize(canvasAssignment.SubmissionTypes)}"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -193,4 +191,10 @@ public static class CoursePlannerSyncronizationExtensions
|
||||
var modules = await Task.WhenAll(moduleTasks);
|
||||
return localCourse with { Modules = modules };
|
||||
}
|
||||
|
||||
[GeneratedRegex("<script.*script>")]
|
||||
private static partial Regex CanvasScriptTagRegex();
|
||||
|
||||
[GeneratedRegex("<link\\s+rel=\"[^\"]*\"\\s+href=\"[^\"]*\"[^>]*>")]
|
||||
private static partial Regex CanvasLinkTagRegex();
|
||||
}
|
||||
|
||||
@@ -13,8 +13,8 @@ public static class CoursePlannerExtensions
|
||||
module with
|
||||
{
|
||||
Assignments = module.Assignments
|
||||
.OrderBy(a => a.due_at)
|
||||
.DistinctBy(a => a.id)
|
||||
.OrderBy(a => a.DueAt)
|
||||
.DistinctBy(a => a.Id)
|
||||
.Select(a => a.validateSubmissionTypes())
|
||||
}
|
||||
);
|
||||
@@ -86,13 +86,13 @@ public static class CoursePlannerExtensions
|
||||
)
|
||||
{
|
||||
var assignmentIdInCanvas =
|
||||
canvasAssignments.FirstOrDefault(ca => ca.Id == assignment.canvasId) != null;
|
||||
canvasAssignments.FirstOrDefault(ca => ca.Id == assignment.CanvasId) != null;
|
||||
if (!assignmentIdInCanvas)
|
||||
{
|
||||
Console.WriteLine(
|
||||
$"no id in canvas for assignment, removing old canvas id: {assignment.name}"
|
||||
$"no id in canvas for assignment, removing old canvas id: {assignment.Name}"
|
||||
);
|
||||
return assignment with { canvasId = null };
|
||||
return assignment with { CanvasId = null };
|
||||
}
|
||||
return assignment;
|
||||
}
|
||||
@@ -100,12 +100,12 @@ public static class CoursePlannerExtensions
|
||||
public static LocalAssignment validateSubmissionTypes(this LocalAssignment assignment)
|
||||
{
|
||||
var containsDiscussion =
|
||||
assignment.submission_types.FirstOrDefault(t => t == SubmissionType.discussion_topic) != null;
|
||||
assignment.SubmissionTypes.FirstOrDefault(t => t == SubmissionType.DISCUSSION_TOPIC) != null;
|
||||
|
||||
if (containsDiscussion)
|
||||
return assignment with
|
||||
{
|
||||
submission_types = new string[] { SubmissionType.discussion_topic }
|
||||
SubmissionTypes = new string[] { SubmissionType.DISCUSSION_TOPIC }
|
||||
};
|
||||
return assignment;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user