mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
module item sorting fixed
This commit is contained in:
@@ -39,7 +39,7 @@
|
||||
@onclick="OnClick"
|
||||
role="button"
|
||||
>
|
||||
<ModuleItemLayout Name=Quiz.Name IsSyncedWithCanvas=existsInCanvas>
|
||||
<ModuleItemLayout Name=@Quiz.Name IsSyncedWithCanvas=@existsInCanvas>
|
||||
@if(!existsInCanvas)
|
||||
{
|
||||
<div class="mx-3 text-body-tertiary">
|
||||
|
||||
@@ -159,7 +159,8 @@ public class AssignmentEditorContext
|
||||
createdAssignmentCanvasId
|
||||
);
|
||||
|
||||
await planner.LocalCourse.Modules.First().SortModuleItems(
|
||||
var module = getCurrentLocalModule(Assignment, planner.LocalCourse);
|
||||
await module.SortModuleItems(
|
||||
(ulong)courseCanvasId,
|
||||
canvasModule.Id,
|
||||
canvas
|
||||
|
||||
@@ -121,7 +121,8 @@ public class PageEditorContext(
|
||||
canvasPage
|
||||
);
|
||||
|
||||
await planner.LocalCourse.Modules.First().SortModuleItems(
|
||||
var currentModule = getCurrentLocalModule(Page, planner.LocalCourse);
|
||||
await currentModule.SortModuleItems(
|
||||
(ulong)courseCanvasId,
|
||||
canvasModule.Id,
|
||||
canvas
|
||||
|
||||
@@ -40,15 +40,20 @@ public static partial class ModuleSyncronizationExtensions
|
||||
var canvasModuleItems = await canvas.Modules.GetModuleItems(canvasId, moduleCanvasId);
|
||||
var moduleItemsInCorrectOrder = canvasModuleItems
|
||||
.OrderBy(canvasItem => {
|
||||
|
||||
if(canvasItem.Type == "Page")
|
||||
{
|
||||
var localPage = localModule.Pages.FirstOrDefault(p => p.Name == canvasItem.Title);
|
||||
Console.WriteLine(JsonSerializer.Serialize(localModule.Pages));
|
||||
|
||||
if(localPage != null)
|
||||
return localPage.DueAt;
|
||||
return localPage.DueAt.Date;
|
||||
}
|
||||
return canvasItem.ContentDetails?.DueAt;
|
||||
return canvasItem.ContentDetails?.DueAt?.Date;
|
||||
})
|
||||
.Select((a, i) => (Item: a, Position: i + 1));
|
||||
.ThenBy(canvasItem => canvasItem.Title)
|
||||
.Select((a, i) => (Item: a, Position: i + 1))
|
||||
.ToArray();
|
||||
|
||||
foreach (var (moduleItem, position) in moduleItemsInCorrectOrder)
|
||||
{
|
||||
|
||||
@@ -24,8 +24,8 @@ public class CanvasAssignmentService(
|
||||
assignments =>
|
||||
assignments.Select(
|
||||
a => a with { DueAt = a.DueAt?.ToLocalTime(), LockAt = a.LockAt?.ToLocalTime() }
|
||||
)
|
||||
);
|
||||
).ToArray()
|
||||
).ToArray();
|
||||
}
|
||||
|
||||
public async Task<ulong> Create(
|
||||
|
||||
@@ -62,7 +62,16 @@ public class CanvasModuleService
|
||||
var (items, response) = await webRequestor.GetAsync<IEnumerable<CanvasModuleItem>>(request);
|
||||
if (items == null)
|
||||
throw new Exception($"Error getting canvas module items for {url}");
|
||||
return items;
|
||||
return items.Select(i =>
|
||||
i with {
|
||||
ContentDetails = i.ContentDetails == null
|
||||
? null
|
||||
: i.ContentDetails with {
|
||||
DueAt = i.ContentDetails.DueAt?.ToLocalTime(),
|
||||
LockAt = i.ContentDetails.LockAt?.ToLocalTime(),
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public async Task<Dictionary<CanvasModule, IEnumerable<CanvasModuleItem>>> GetAllModulesItems(
|
||||
|
||||
Reference in New Issue
Block a user