Files
asistencia-desktop/Asistencia/App.axaml.cs
T
Nurfog fb275508ee Alinear BD local con esquema de produccion, login offline y publicacion portable
- Modelos renombrados para coincidir con columnas de MariaDB (ApPaterno/ApMaterno, HoraSalida, FechaFin, IdAsistenciaProfesor)
- Agregado campo IdAlumno a DetalleContrato
- Seed data con IDs reales de produccion (16451, 16493, profesor 15668563-1)
- Login offline: solo valida RUT contra BD local, sin contraseña
- ConnectivityService: checkea internet al inicio, bloquea si hay conexion
- ViewLocator corregido: busca tipos en todos los ensamblados
- Todos los ViewModels heredan de ViewModelBase
- Publicacion self-contained para win-x64, linux-x64, osx-x64, osx-arm64
- Agregado .gitignore, removidos bin/obj/publish del tracking
2026-08-19 16:43:52 -04:00

53 lines
1.6 KiB
C#

using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Asistencia.ViewModels;
using Asistencia.Views;
using Asistencia.Data;
using Asistencia.Data.Repositories;
using Asistencia.Services;
using Microsoft.Extensions.DependencyInjection;
namespace Asistencia;
public partial class App : Application
{
public static IServiceProvider? Services { get; private set; }
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
var services = new ServiceCollection();
services.AddDbContext<AppDbContext>();
services.AddSingleton<ProfesorRepository>();
services.AddSingleton<CursoRepository>();
services.AddSingleton<AsistenciaRepository>();
services.AddSingleton<AuthService>();
services.AddSingleton<AsistenciaService>();
services.AddSingleton<ConnectivityService>();
services.AddSingleton<MainWindowViewModel>();
Services = services.BuildServiceProvider();
using var scope = Services.CreateScope();
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
db.Database.EnsureCreated();
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
var vm = Services.GetRequiredService<MainWindowViewModel>();
desktop.MainWindow = new MainWindow
{
DataContext = vm
};
}
base.OnFrameworkInitializationCompleted();
}
}