Files
asesidaa_GC-local-server-re…/WebUI/Pages/Cards.razor.cs
T
2023-02-21 22:45:51 +08:00

56 lines
1.6 KiB
C#

using System.Net.Http.Json;
using Microsoft.AspNetCore.Components;
using Shared.Dto.Api;
using Shared.Models;
using Throw;
using Shared.SerializerContexts;
using WebUI.Pages.Dialogs;
namespace WebUI.Pages;
public partial class Cards
{
[Inject]
public required HttpClient Client { get; set; }
[Inject]
public required IDialogService DialogService { get; set; }
[Inject]
public required ILogger<Cards> Logger { get; set; }
private List<ClientCardDto>? CardDtos { get; set; }
private string ErrorMessage { get; set; } = string.Empty;
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
await Task.Delay(3000);
var result = await Client.GetFromJsonAsync<ServiceResult<List<ClientCardDto>>>("api/Profiles");
result.ThrowIfNull();
Logger.LogInformation("Result: {Result}", result.Data);
if (!result.Succeeded)
{
ErrorMessage = result.Error!.Message;
return;
}
CardDtos = result.Data;
}
private async Task OnEditPlayerNameClicked(ClientCardDto card)
{
var options = new DialogOptions
{
CloseOnEscapeKey = false,
DisableBackdropClick = true,
FullWidth = true
};
var parameters = new DialogParameters { { "Data", card } };
var dialog = await DialogService.ShowAsync<ChangePlayerNameDialog>("Favorite", parameters, options);
// ReSharper disable once UnusedVariable
var result = await dialog.Result;
}
}