feat: implement core domain models, authentication service, and UI components for the attendance system
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using Asistencia.Services;
|
||||
|
||||
namespace Asistencia.ViewModels;
|
||||
|
||||
public partial class PerfilViewModel : ObservableObject
|
||||
{
|
||||
private readonly AuthService _authService;
|
||||
private readonly MainWindowViewModel _mainVm;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _rut = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _nombreCompleto = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _email = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _fono = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _direccion = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _mensajeExito = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private bool _tieneExito;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _mensajeError = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private bool _tieneError;
|
||||
|
||||
[ObservableProperty]
|
||||
private bool _mostrarCambioClave;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _claveActual = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _nuevaClave = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _confirmarClave = string.Empty;
|
||||
|
||||
public PerfilViewModel(AuthService authService, MainWindowViewModel mainVm)
|
||||
{
|
||||
_authService = authService;
|
||||
_mainVm = mainVm;
|
||||
|
||||
var user = authService.CurrentUser;
|
||||
if (user != null)
|
||||
{
|
||||
Rut = user.RutPasaporte;
|
||||
NombreCompleto = user.NombreCompleto;
|
||||
Email = user.Email;
|
||||
Fono = user.Fono;
|
||||
Direccion = user.Direccion;
|
||||
}
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private async Task GuardarEmailAsync()
|
||||
{
|
||||
TieneExito = false;
|
||||
TieneError = false;
|
||||
|
||||
var (success, message) = await _authService.ActualizarEmailAsync(Email);
|
||||
if (success)
|
||||
{
|
||||
MensajeExito = message;
|
||||
TieneExito = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
MensajeError = message;
|
||||
TieneError = true;
|
||||
}
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private async Task CambiarClaveAsync()
|
||||
{
|
||||
TieneExito = false;
|
||||
TieneError = false;
|
||||
|
||||
var (success, message) = await _authService.CambiarClaveAsync(ClaveActual, NuevaClave, ConfirmarClave);
|
||||
if (success)
|
||||
{
|
||||
MensajeExito = message;
|
||||
TieneExito = true;
|
||||
MostrarCambioClave = false;
|
||||
ClaveActual = string.Empty;
|
||||
NuevaClave = string.Empty;
|
||||
ConfirmarClave = string.Empty;
|
||||
}
|
||||
else
|
||||
{
|
||||
MensajeError = message;
|
||||
TieneError = true;
|
||||
}
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private void ToggleCambioClave()
|
||||
{
|
||||
MostrarCambioClave = !MostrarCambioClave;
|
||||
TieneExito = false;
|
||||
TieneError = false;
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private void Volver()
|
||||
{
|
||||
_mainVm.NavigateToDashboard();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user