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
This commit is contained in:
Nurfog committed 2026-08-19 16:43:52 -04:00
1 parent 9068122b6b
commit fb275508ee
19 files changed
+196 -77

No files matched your search

+24 -27
View File
@@ -58,48 +58,48 @@ public class AppDbContext : DbContext
modelBuilder.Entity<Profesor>().HasData(
new Profesor
{
RutPasaporte = "12345678-9",
RutPasaporte = "15668563-1",
Nombre = "Juan",
Paterno = "Perez",
Materno = "Gonzalez",
ApPaterno = "Perez",
ApMaterno = "Gonzalez",
Email = "juan.perez@norteamericano.cl",
Fono = "+56912345678",
Direccion = "Av. Providencia 1234, Santiago",
Clave = "",
CrearClave = true
CrearClave = true,
Activo = true
}
);
modelBuilder.Entity<Curso>().HasData(
new Curso { IdCursos = 1, NombreCurso = "English Basic A1" },
new Curso { IdCursos = 2, NombreCurso = "English Intermediate B1" },
new Curso { IdCursos = 3, NombreCurso = "English Advanced C1" }
new Curso { IdCursos = 16451, NombreCurso = "English Basic A1" },
new Curso { IdCursos = 16493, NombreCurso = "English Intermediate B1" }
);
modelBuilder.Entity<CursoAbierto>().HasData(
new CursoAbierto
{
IdCursoAbierto = 1,
IdCursos = 1,
IdCursoAbierto = 16451,
IdCursos = 16451,
Sala = "Sala 101",
Sede = "Providencia",
HoraInicio = "09:00",
HoraFin = "10:30",
FechaInicio = new DateTime(2026, 3, 1),
FechaTermino = new DateTime(2026, 7, 31),
ProfesorRun = "12345678-9"
FechaFin = new DateTime(2026, 7, 31),
ProfesorRun = "15668563-1"
},
new CursoAbierto
{
IdCursoAbierto = 2,
IdCursos = 2,
IdCursoAbierto = 16493,
IdCursos = 16493,
Sala = "Sala 202",
Sede = "Las Condes",
HoraInicio = "14:00",
HoraFin = "15:30",
FechaInicio = new DateTime(2026, 3, 1),
FechaTermino = new DateTime(2026, 7, 31),
ProfesorRun = "12345678-9"
FechaFin = new DateTime(2026, 7, 31),
ProfesorRun = "15668563-1"
}
);
@@ -107,32 +107,29 @@ public class AppDbContext : DbContext
new DetalleContrato
{
IdDetalleContrato = 1,
IdCursoAbierto = 1,
IdCursoAbierto = 16451,
IdAlumno = "11111111-1",
AP_Paterno = "Garcia",
AP_Materno = "Lopez",
Nombres = "Maria",
Email = "maria.garcia@email.com",
Telefono = "+56998765432"
Nombres = "Maria"
},
new DetalleContrato
{
IdDetalleContrato = 2,
IdCursoAbierto = 1,
IdCursoAbierto = 16451,
IdAlumno = "22222222-2",
AP_Paterno = "Rodriguez",
AP_Materno = "Soto",
Nombres = "Carlos",
Email = "carlos.rodriguez@email.com",
Telefono = "+56987654321"
Nombres = "Carlos"
},
new DetalleContrato
{
IdDetalleContrato = 3,
IdCursoAbierto = 2,
IdCursoAbierto = 16493,
IdAlumno = "33333333-3",
AP_Paterno = "Martinez",
AP_Materno = "Fernandez",
Nombres = "Ana",
Email = "ana.martinez@email.com",
Telefono = "+56976543210"
Nombres = "Ana"
}
);
}
@@ -41,7 +41,7 @@ public class AsistenciaRepository
var sesion = await _context.AsistenciasProfesor.FindAsync(idSesion);
if (sesion == null) return false;
sesion.HoraFin = horaFin;
sesion.HoraSalida = horaFin;
sesion.Estado = "Finalizada";
await _context.SaveChangesAsync();
return true;