feat: agregar SyncService y mejorar gestión de asistencia con nuevas funcionalidades
This commit is contained in:
1 parent
fb275508ee
commit
d953afd3b4
15 files changed
+339
-359
No files matched your search
@@ -10,40 +10,54 @@ public partial class DashboardViewModel : ViewModelBase
|
||||
{
|
||||
private readonly AuthService _authService;
|
||||
private readonly AsistenciaService _asistenciaService;
|
||||
private readonly SyncService _syncService;
|
||||
private readonly MainWindowViewModel _mainVm;
|
||||
|
||||
[ObservableProperty]
|
||||
private string _nombreProfesor = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private int _totalCursos;
|
||||
private string _tipoAsignacion = string.Empty;
|
||||
|
||||
public ObservableCollection<CursoAbierto> Cursos { get; } = new();
|
||||
[ObservableProperty]
|
||||
private int _pendientes;
|
||||
|
||||
public DashboardViewModel(AuthService authService, AsistenciaService asistenciaService, MainWindowViewModel mainVm)
|
||||
[ObservableProperty]
|
||||
private string _mensajeSync = string.Empty;
|
||||
|
||||
[ObservableProperty]
|
||||
private bool _hasMensajeSync;
|
||||
|
||||
public DashboardViewModel(AuthService authService, AsistenciaService asistenciaService, SyncService syncService, MainWindowViewModel mainVm)
|
||||
{
|
||||
_authService = authService;
|
||||
_asistenciaService = asistenciaService;
|
||||
_syncService = syncService;
|
||||
_mainVm = mainVm;
|
||||
NombreProfesor = authService.CurrentUser?.Nombre ?? "";
|
||||
_ = LoadCursosAsync();
|
||||
NombreProfesor = authService.CurrentUser?.NombreCompleto ?? "";
|
||||
TipoAsignacion = authService.TipoAsignacionActual == 1 ? "Titular" : "Reemplazo";
|
||||
_ = CargarPendientesAsync();
|
||||
}
|
||||
|
||||
private async Task LoadCursosAsync()
|
||||
private async Task CargarPendientesAsync()
|
||||
{
|
||||
if (_authService.CurrentUser == null) return;
|
||||
|
||||
var cursos = await _asistenciaService.ObtenerCursosProfesorAsync(_authService.CurrentUser.RutPasaporte);
|
||||
Cursos.Clear();
|
||||
foreach (var c in cursos) Cursos.Add(c);
|
||||
TotalCursos = Cursos.Count;
|
||||
Pendientes = await _syncService.ContarPendientesAsync();
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private void AbrirAsistencia(CursoAbierto? curso)
|
||||
private void AbrirAsistencia()
|
||||
{
|
||||
if (curso != null)
|
||||
_mainVm.NavigateToAsistencia(curso);
|
||||
_mainVm.NavigateToAsistencia();
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private async Task SincronizarAsync()
|
||||
{
|
||||
HasMensajeSync = false;
|
||||
var (success, message) = await _syncService.SincronizarAsync("http://localhost:5000");
|
||||
MensajeSync = message;
|
||||
HasMensajeSync = true;
|
||||
await CargarPendientesAsync();
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
|
||||
Reference in new issue
Block a user