bulletboards/ImageBoardServerApp/Pages/Basic/ThreadPage.razor

44 lines
No EOL
1 KiB
Text

@page "/{boardName}/thread/{threadId}"
@using System.ComponentModel.DataAnnotations
@using ImageBoardServerApp.Data.Repository
@inject NavigationManager NavigationManager
<h3>Thread #@threadId on /@boardName/</h3>
<Post post="@post" showOpenThread="false"/>
<hr/>
@foreach (var comment in post.Comments)
{
<Comment comment="comment"/>
<hr/>
}
<CommentForm post="post"/>
@code {
[Parameter]
[Required]
public string boardName { get; set; }
[Parameter]
[Required]
public string threadId { get; set; }
private PostData post;
protected override async Task OnInitializedAsync()
{
try
{
post = await PostsRepository.getPostByIdAsync(int.Parse(threadId));
}
catch (FormatException fe)
{
NavigationManager.NavigateTo("/notfound");
return;
}
if(post.Board != boardName)
NavigationManager.NavigateTo("/notfound");
if(post == null)
NavigationManager.NavigateTo("/notfound");
}
}