Skip to content

Commit 92d7f02

Browse files
committed
Fix zone sort retrieval
1 parent dc05abc commit 92d7f02

3 files changed

Lines changed: 25 additions & 10 deletions

File tree

website/MyWebApp/Controllers/AdminBlockTemplateController.cs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ private async Task LoadPagesAsync()
2828
{
2929
ViewBag.Pages = await _db.Pages.AsNoTracking().OrderBy(p => p.Slug).ToListAsync();
3030
ViewBag.Roles = await _db.Roles.AsNoTracking().OrderBy(r => r.Name).ToListAsync();
31+
ViewBag.Zones = await _db.PageSections.AsNoTracking()
32+
.Select(s => s.Zone)
33+
.Distinct()
34+
.OrderBy(z => z)
35+
.ToListAsync();
3136
}
3237

3338
public async Task<IActionResult> Index()
@@ -202,11 +207,11 @@ public async Task<IActionResult> AddToPage(int id, List<int> pageIds, string zon
202207
}
203208
foreach (var pageId in pageIds)
204209
{
205-
var sort = await _db.PageSections
210+
var maxSort = await _db.PageSections
206211
.Where(s => s.PageId == pageId && s.Zone == zone)
207-
.Select(s => s.SortOrder)
208-
.DefaultIfEmpty(-1)
209-
.MaxAsync() + 1;
212+
.Select(s => (int?)s.SortOrder)
213+
.MaxAsync();
214+
var sort = (maxSort ?? -1) + 1;
210215
var section = new PageSection
211216
{
212217
PageId = pageId,
@@ -235,11 +240,11 @@ private async Task AddSectionsAsync(BlockTemplate template, List<int>? pageIds,
235240
}
236241
foreach (var pageId in pageIds)
237242
{
238-
var sort = await _db.PageSections
243+
var maxSort = await _db.PageSections
239244
.Where(s => s.PageId == pageId && s.Zone == zone)
240-
.Select(s => s.SortOrder)
241-
.DefaultIfEmpty(-1)
242-
.MaxAsync() + 1;
245+
.Select(s => (int?)s.SortOrder)
246+
.MaxAsync();
247+
var sort = (maxSort ?? -1) + 1;
243248
var section = new PageSection
244249
{
245250
PageId = pageId,

website/MyWebApp/Views/AdminBlockTemplate/AddToPage.cshtml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@
2222
</div>
2323
<div>
2424
<label>Zone</label>
25-
<input type="text" name="zone" />
25+
<select id="zone-select" name="zone">
26+
@foreach (var z in ViewBag.Zones as List<string>)
27+
{
28+
<option value="@z">@z</option>
29+
}
30+
</select>
2631
</div>
2732
<div>
2833
<label>Role</label>

website/MyWebApp/Views/AdminBlockTemplate/_PageAssignment.cshtml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@
1414
</div>
1515
<div>
1616
<label>Zone</label>
17-
<input type="text" name="zone" />
17+
<select id="zone-select" name="zone">
18+
@foreach (var z in ViewBag.Zones as List<string>)
19+
{
20+
<option value="@z">@z</option>
21+
}
22+
</select>
1823
</div>
1924
<div>
2025
<label>Role</label>

0 commit comments

Comments
 (0)