@page "/albums"
@inject IServiceClientFactory ServiceClientFactory
@inject NavigationManager NavigationManager
@attribute [Authorize]
@if (UserAlbums != null)
{
@foreach (var userAlbum in UserAlbums)
{
}
}
@if (!Loaded)
{
}
@code {
bool Loaded { get; set; }
readonly List UserAlbums = new();
public string AlbumName { get; set; }
AlbumClient _albumClient;
protected override async Task OnInitializedAsync()
{
_albumClient = await ServiceClientFactory.CreateAlbumClient();
await LoadAlbums();
}
async Task LoadAlbums()
{
try
{
var albums = await _albumClient.GetUserAlbumsAsync();
foreach (var album in albums)
{
UserAlbums.Add(album);
}
Loaded = true;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
NavigationManager.NavigateTo("Identity/Login", true);
}
}
async Task SubmitForm()
{
var createAlbumResult = await _albumClient.CreateAlbumAsync(AlbumName);
var album = new Album
{
Name = AlbumName,
AlbumId = createAlbumResult.AlbumId
};
UserAlbums.Add(album);
}
}