From 92d7f02626f4c730e170661dcefea9bd49063630 Mon Sep 17 00:00:00 2001 From: Denis-RZ <77514212+Denis-RZ@users.noreply.github.com> Date: Wed, 18 Jun 2025 15:37:19 +0800 Subject: [PATCH] Fix zone sort retrieval --- .../AdminBlockTemplateController.cs | 21 ++++++++++++------- .../Views/AdminBlockTemplate/AddToPage.cshtml | 7 ++++++- .../AdminBlockTemplate/_PageAssignment.cshtml | 7 ++++++- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/website/MyWebApp/Controllers/AdminBlockTemplateController.cs b/website/MyWebApp/Controllers/AdminBlockTemplateController.cs index 551618a..d799225 100644 --- a/website/MyWebApp/Controllers/AdminBlockTemplateController.cs +++ b/website/MyWebApp/Controllers/AdminBlockTemplateController.cs @@ -28,6 +28,11 @@ private async Task LoadPagesAsync() { ViewBag.Pages = await _db.Pages.AsNoTracking().OrderBy(p => p.Slug).ToListAsync(); ViewBag.Roles = await _db.Roles.AsNoTracking().OrderBy(r => r.Name).ToListAsync(); + ViewBag.Zones = await _db.PageSections.AsNoTracking() + .Select(s => s.Zone) + .Distinct() + .OrderBy(z => z) + .ToListAsync(); } public async Task Index() @@ -202,11 +207,11 @@ public async Task AddToPage(int id, List pageIds, string zon } foreach (var pageId in pageIds) { - var sort = await _db.PageSections + var maxSort = await _db.PageSections .Where(s => s.PageId == pageId && s.Zone == zone) - .Select(s => s.SortOrder) - .DefaultIfEmpty(-1) - .MaxAsync() + 1; + .Select(s => (int?)s.SortOrder) + .MaxAsync(); + var sort = (maxSort ?? -1) + 1; var section = new PageSection { PageId = pageId, @@ -235,11 +240,11 @@ private async Task AddSectionsAsync(BlockTemplate template, List? pageIds, } foreach (var pageId in pageIds) { - var sort = await _db.PageSections + var maxSort = await _db.PageSections .Where(s => s.PageId == pageId && s.Zone == zone) - .Select(s => s.SortOrder) - .DefaultIfEmpty(-1) - .MaxAsync() + 1; + .Select(s => (int?)s.SortOrder) + .MaxAsync(); + var sort = (maxSort ?? -1) + 1; var section = new PageSection { PageId = pageId, diff --git a/website/MyWebApp/Views/AdminBlockTemplate/AddToPage.cshtml b/website/MyWebApp/Views/AdminBlockTemplate/AddToPage.cshtml index c08e096..67a64ec 100644 --- a/website/MyWebApp/Views/AdminBlockTemplate/AddToPage.cshtml +++ b/website/MyWebApp/Views/AdminBlockTemplate/AddToPage.cshtml @@ -22,7 +22,12 @@
- +
diff --git a/website/MyWebApp/Views/AdminBlockTemplate/_PageAssignment.cshtml b/website/MyWebApp/Views/AdminBlockTemplate/_PageAssignment.cshtml index 33945a6..75acbb0 100644 --- a/website/MyWebApp/Views/AdminBlockTemplate/_PageAssignment.cshtml +++ b/website/MyWebApp/Views/AdminBlockTemplate/_PageAssignment.cshtml @@ -14,7 +14,12 @@
- +