feat: agregar SyncService y mejorar gestión de asistencia con nuevas funcionalidades

This commit is contained in:
Nurfog committed 2026-08-20 10:45:53 -04:00
1 parent fb275508ee
commit d953afd3b4
15 files changed
+339 -359

No files matched your search

-77
View File
@@ -55,82 +55,5 @@ public class AppDbContext : DbContext
private static void SeedData(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Profesor>().HasData(
new Profesor
{
RutPasaporte = "15668563-1",
Nombre = "Juan",
ApPaterno = "Perez",
ApMaterno = "Gonzalez",
Email = "juan.perez@norteamericano.cl",
Fono = "+56912345678",
Direccion = "Av. Providencia 1234, Santiago",
Clave = "",
CrearClave = true,
Activo = true
}
);
modelBuilder.Entity<Curso>().HasData(
new Curso { IdCursos = 16451, NombreCurso = "English Basic A1" },
new Curso { IdCursos = 16493, NombreCurso = "English Intermediate B1" }
);
modelBuilder.Entity<CursoAbierto>().HasData(
new CursoAbierto
{
IdCursoAbierto = 16451,
IdCursos = 16451,
Sala = "Sala 101",
Sede = "Providencia",
HoraInicio = "09:00",
HoraFin = "10:30",
FechaInicio = new DateTime(2026, 3, 1),
FechaFin = new DateTime(2026, 7, 31),
ProfesorRun = "15668563-1"
},
new CursoAbierto
{
IdCursoAbierto = 16493,
IdCursos = 16493,
Sala = "Sala 202",
Sede = "Las Condes",
HoraInicio = "14:00",
HoraFin = "15:30",
FechaInicio = new DateTime(2026, 3, 1),
FechaFin = new DateTime(2026, 7, 31),
ProfesorRun = "15668563-1"
}
);
modelBuilder.Entity<DetalleContrato>().HasData(
new DetalleContrato
{
IdDetalleContrato = 1,
IdCursoAbierto = 16451,
IdAlumno = "11111111-1",
AP_Paterno = "Garcia",
AP_Materno = "Lopez",
Nombres = "Maria"
},
new DetalleContrato
{
IdDetalleContrato = 2,
IdCursoAbierto = 16451,
IdAlumno = "22222222-2",
AP_Paterno = "Rodriguez",
AP_Materno = "Soto",
Nombres = "Carlos"
},
new DetalleContrato
{
IdDetalleContrato = 3,
IdCursoAbierto = 16493,
IdAlumno = "33333333-3",
AP_Paterno = "Martinez",
AP_Materno = "Fernandez",
Nombres = "Ana"
}
);
}
}
@@ -21,7 +21,7 @@ public class AsistenciaRepository
a.Estado == "Activa");
}
public async Task<AsistenciaProfesor> IniciarSesionAsync(int idCursoAbierto, string rut, DateTime fecha, string horaInicio)
public async Task<AsistenciaProfesor> IniciarSesionAsync(int idCursoAbierto, string rut, DateTime fecha, string horaInicio, int tipoAsignacion)
{
var sesion = new AsistenciaProfesor
{
@@ -29,7 +29,8 @@ public class AsistenciaRepository
RutPasaporte = rut,
FechaAsistencia = fecha,
HoraInicio = horaInicio,
Estado = "Activa"
Estado = "Activa",
Temporal = tipoAsignacion == 4 ? 1 : 0
};
_context.AsistenciasProfesor.Add(sesion);
await _context.SaveChangesAsync();
@@ -33,4 +33,11 @@ public class CursoRepository
.Where(d => d.IdCursoAbierto == idCursoAbierto)
.ToListAsync();
}
public async Task<DetalleContrato?> BuscarAlumnoPorRutAsync(int idCursoAbierto, string idAlumno)
{
return await _context.DetallesContrato
.FirstOrDefaultAsync(d => d.IdCursoAbierto == idCursoAbierto
&& d.IdAlumno == idAlumno);
}
}