Files
TechHelper/TechHelper.Client/Pages/Manage/Class.razor.cs
2025-05-23 19:03:00 +08:00

62 lines
1.7 KiB
C#

using Entities.DTO;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Authorization;
using MudBlazor;
using System.Collections.Frozen;
using System.ComponentModel.DataAnnotations;
using TechHelper.Client.HttpRepository;
using TechHelper.Client.Services;
namespace TechHelper.Client.Pages.Manage
{
public partial class Class
{
private UserRegistrationToClassDto _userRegistrationToClassDto = new UserRegistrationToClassDto();
private string? username;
private string? phoneNumber;
[Inject]
public ISnackbar Snackbar { get; set; }
[Inject]
public IAuthenticationClientService Authentication { get; set; }
[Inject]
public IClassServices ClassServices { get; set; }
[CascadingParameter]
private Task<AuthenticationState> authenticationStateTask { get; set; }
[SupplyParameterFromForm]
private InputModel Input { get; set; } = new();
protected override async Task OnInitializedAsync()
{
username = authenticationStateTask.Result.User.Identity.Name;
phoneNumber = authenticationStateTask.Result.User.Identity.IsAuthenticated.ToString();
Input.PhoneNumber ??= phoneNumber;
}
private async Task Register()
{
_userRegistrationToClassDto.User = authenticationStateTask.Result.User.Identity.Name?? "";
var result = await ClassServices.UserRegister(_userRegistrationToClassDto);
if (result.IsSuccessfulRegistration)
{
var token = await Authentication.RefreshTokenAsync();
Snackbar.Add("°à¼¶×¢²á³É¹¦", Severity.Info);
}
else
{
Snackbar.Add(result.Errors.First(), Severity.Error);
}
}
private sealed class InputModel
{
[Phone]
[Display(Name = "Phone number")]
public string? PhoneNumber { get; set; }
}
}
}