Files
David Štaleker c6d14525de dev
2024-03-12 19:04:38 +01:00

65 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using ZpcBulletinBoard.Data;
using ZpcBulletinBoard.Models;
using ZpcBulletinBoard.Models.Editor;
namespace ZpcBulletinBoard.Pages.Boards
{
[AllowAnonymous]
public class ViewModel(ApplicationDbContext context)
: PageModel
{
[BindProperty] public string Guid { get; set; } = "";
public IActionResult OnGet(string? guid)
{
if (string.IsNullOrEmpty(guid))
{
return NotFound();
}
Guid = guid;
return Page();
}
//GET
public IActionResult OnGetPages(string guid)
{
var board = context.BulletinBoards
.Include(x => x.Links.OrderBy(x => x.Order))
.ThenInclude(x => x.BulletinBoardPage)
.FirstOrDefault(x => x.Guid.ToString() == guid);
var links = new List<BulletinBoardPageLink>();
if (board is not { Links: not null }) return new JsonResult(new { successful = true, links });
links.AddRange(board.Links);
foreach (var link in links)
{
link.BulletinBoardPage.Links = null;
link.BulletinBoard.Links = null;
}
return new JsonResult(new { successful = true, links });
}
}
}