module item sorting fixed

This commit is contained in:
2024-01-12 17:02:13 -07:00
parent 324bb94eda
commit b28bea77e9
8 changed files with 31 additions and 15 deletions

View File

@@ -39,7 +39,7 @@
@onclick="OnClick" @onclick="OnClick"
role="button" role="button"
> >
<ModuleItemLayout Name=Quiz.Name IsSyncedWithCanvas=existsInCanvas> <ModuleItemLayout Name=@Quiz.Name IsSyncedWithCanvas=@existsInCanvas>
@if(!existsInCanvas) @if(!existsInCanvas)
{ {
<div class="mx-3 text-body-tertiary"> <div class="mx-3 text-body-tertiary">

View File

@@ -159,7 +159,8 @@ public class AssignmentEditorContext
createdAssignmentCanvasId createdAssignmentCanvasId
); );
await planner.LocalCourse.Modules.First().SortModuleItems( var module = getCurrentLocalModule(Assignment, planner.LocalCourse);
await module.SortModuleItems(
(ulong)courseCanvasId, (ulong)courseCanvasId,
canvasModule.Id, canvasModule.Id,
canvas canvas

View File

@@ -121,7 +121,8 @@ public class PageEditorContext(
canvasPage canvasPage
); );
await planner.LocalCourse.Modules.First().SortModuleItems( var currentModule = getCurrentLocalModule(Page, planner.LocalCourse);
await currentModule.SortModuleItems(
(ulong)courseCanvasId, (ulong)courseCanvasId,
canvasModule.Id, canvasModule.Id,
canvas canvas

View File

@@ -40,15 +40,20 @@ public static partial class ModuleSyncronizationExtensions
var canvasModuleItems = await canvas.Modules.GetModuleItems(canvasId, moduleCanvasId); var canvasModuleItems = await canvas.Modules.GetModuleItems(canvasId, moduleCanvasId);
var moduleItemsInCorrectOrder = canvasModuleItems var moduleItemsInCorrectOrder = canvasModuleItems
.OrderBy(canvasItem => { .OrderBy(canvasItem => {
if(canvasItem.Type == "Page") if(canvasItem.Type == "Page")
{ {
var localPage = localModule.Pages.FirstOrDefault(p => p.Name == canvasItem.Title); var localPage = localModule.Pages.FirstOrDefault(p => p.Name == canvasItem.Title);
Console.WriteLine(JsonSerializer.Serialize(localModule.Pages));
if(localPage != null) 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) foreach (var (moduleItem, position) in moduleItemsInCorrectOrder)
{ {

View File

@@ -24,8 +24,8 @@ public class CanvasAssignmentService(
assignments => assignments =>
assignments.Select( assignments.Select(
a => a with { DueAt = a.DueAt?.ToLocalTime(), LockAt = a.LockAt?.ToLocalTime() } a => a with { DueAt = a.DueAt?.ToLocalTime(), LockAt = a.LockAt?.ToLocalTime() }
) ).ToArray()
); ).ToArray();
} }
public async Task<ulong> Create( public async Task<ulong> Create(

View File

@@ -62,7 +62,16 @@ public class CanvasModuleService
var (items, response) = await webRequestor.GetAsync<IEnumerable<CanvasModuleItem>>(request); var (items, response) = await webRequestor.GetAsync<IEnumerable<CanvasModuleItem>>(request);
if (items == null) if (items == null)
throw new Exception($"Error getting canvas module items for {url}"); 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( public async Task<Dictionary<CanvasModule, IEnumerable<CanvasModuleItem>>> GetAllModulesItems(

View File

@@ -2,7 +2,7 @@
MAJOR_VERSION="1" MAJOR_VERSION="1"
MINOR_VERSION="4" MINOR_VERSION="5"
VERSION="$MAJOR_VERSION.$MINOR_VERSION" VERSION="$MAJOR_VERSION.$MINOR_VERSION"
dotnet publish Management.Web/ \ dotnet publish Management.Web/ \