@page "/"
@using ImageBoardServerApp.Data.Repository
@using ImageBoardServerApp.Auth
@inject AuthenticationStateProvider authStateProvider

<h1>BulletBoard</h1>
<span>This is a simple Imageboard made in Razor.</span>
<br/>
<span>We're currently hosting @amountOfPosts Threads, @amountOfComments Comments and @amountOfUsers Users.</span>
<sr/>
<span>@Details</span>
<AuthorizeView>
    <Authorized>
        <br/>
        <a href="/sys/you">Edit your account</a>
    </Authorized>
</AuthorizeView>

@code{
    private string Details { get; set; }
    
    private int amountOfPosts = -1;
    private int amountOfComments = -1;
    private int amountOfUsers = -1;
    protected override async Task OnInitializedAsync()
    {
        var cauthStateProvder = (CustomAuthenticationStateProvider)authStateProvider;
        var user = await cauthStateProvder.GetAuthenticationStateAsync();
        if (user.User.Identity.IsAuthenticated)
        {
            var usr = user.User.Identity.Name;
            Details = $"Welcome {usr}";
        }
        else
        {
            Details = "Please log in first.";
        }
        var posts = await PostsRepository.getPostsAsync();
        amountOfPosts = posts.Count;
        var comments = await CommentsRepository.getCommentsAsync();
        amountOfComments = comments.Count;
        var users = await UsersRepository.getUsersAsync();
        amountOfUsers = users.Count;
    }

}