public LeccionServices(CursosDbContext cursosDbContext) { _cursosDbContext = cursosDbContext; }
//se marcan para no enviar aquellos registros de cursos que los capacitados ya actualizaron private void MarcarRegistrosYaActualizados(DateTime proximaFechaVencimientoNotificar) { List <int> notificacionVencimientosIds = null; List <int> capacitadosIds = null; List <int> jornadasVencidasId = null; //se obtienen los Ids de las notificaciones que están por vencer using (CursosDbContext db = new CursosDbContext()) { var notificacionVencimientos = db.NotificacionVencimientos .Where(n => n.Estado == EstadoNotificacionVencimiento.NotificacionPendiente) .Where(n => n.RegistroCapacitacion.FechaVencimiento <= proximaFechaVencimientoNotificar); notificacionVencimientosIds = notificacionVencimientos.Select(n => n.NotificacionVencimientoID).ToList(); capacitadosIds = notificacionVencimientos.Select(n => n.RegistroCapacitacion.Capacitado.CapacitadoID).ToList(); jornadasVencidasId = notificacionVencimientos.Select(n => n.RegistroCapacitacion.JornadaID).Distinct().ToList(); } int i = 0; foreach (var jornadaVencidaId in jornadasVencidasId) { using (CursosDbContext db = new CursosDbContext()) { Jornada jornadaVencida = null; try { jornadaVencida = db.Jornada.Find(jornadaVencidaId); //var capacitado = db.Capacitados.Find(capacitadosIds[i]); } catch (Exception ex) { throw ex; } int currentCapacitadoId = capacitadosIds[i]; var capacitado = db.Capacitados.Where(c => c.CapacitadoID == currentCapacitadoId) .Include(c => c.RegistrosCapacitacion).FirstOrDefault(); //se obtiene la última jornada asociada al curso de la jornada que se debería notificar como vencida var ultimaJornadaCursoRegistrada = capacitado.RegistrosCapacitacion.Where(r => r.Jornada.CursoId == jornadaVencida.CursoId).OrderByDescending(r => r.Jornada.Fecha).FirstOrDefault(); //si la última jornada que tomó el capacitado no coincide con la que se va a notificar //es porque el capacitado ya tomó una jornada de actualización por lo que no es necesario notificar ese vencimiento if (ultimaJornadaCursoRegistrada != null && ultimaJornadaCursoRegistrada.JornadaID != jornadaVencida.JornadaID) { var notificacionVencimiento = db.NotificacionVencimientos.Find(notificacionVencimientosIds[i]); notificacionVencimiento.Estado = EstadoNotificacionVencimiento.NoNotificar; string mensajelog = string.Format("{0} - {1}. No se notificará el vecimiento de la jornada {2} porque el Capacitado ya tiene una jornada posterior correspondiente a ese curso.", capacitado.DocumentoCompleto, capacitado.NombreCompleto, jornadaVencida.JornadaIdentificacionCompleta); LogHelper.GetInstance().WriteMessage("notificaciones", mensajelog); db.SaveChanges(); } } i++; } /* * using (CursosDbContext db = new CursosDbContext()) * { * var notificacionVencimientos = db.NotificacionVencimientos * .Where(n => n.Estado == EstadoNotificacionVencimiento.NotificacionPendiente) * .Where(n => n.RegistroCapacitacion.FechaVencimiento <= proximaFechaVencimientoNotificar) * .Include(n => n.RegistroCapacitacion) * .Include(n => n.RegistroCapacitacion.Capacitado.RegistrosCapacitacion); * * if (notificacionVencimientos.Count() > 0) * { * //se verifica que el capacitado no tenga jornadas posteriores a la * foreach (var n in notificacionVencimientos) * { * var capacitado = n.RegistroCapacitacion.Capacitado; * var jornadaVencida = n.RegistroCapacitacion.Jornada; * * //se obtiene la última jornada asociada al curso de la jornada que se debería notificar como vencida * var ultimaJornadaCursoRegistrada = * capacitado.RegistrosCapacitacion.Where(r => r.Jornada.CursoId == jornadaVencida.CursoId).OrderByDescending(r => r.Jornada.Fecha).First(); * * //si la última jornada que tomó el capacitado no coincide con la que se va a notificar * //es porque el capacitado ya tomó una jornada de actualización por lo que no es necesario notificar ese vencimiento * if (ultimaJornadaCursoRegistrada.JornadaID != jornadaVencida.JornadaID) * n.Estado = EstadoNotificacionVencimiento.NoNotificar; * } * * //db.SaveChanges(); * } * } */ }
public CursoRepository(CursosDbContext context) : base(context) { _context = context; }
public RepositorioAlumnos(CursosDbContext dbContext) { _dbContext = dbContext; }
public UnitofWork(CursosDbContext dbContext) { _dbContext = dbContext; }
public DepartamentoRepository(CursosDbContext context) : base(context) { _context = context; }
public CursosController(CursosDbContext context) { _context = context; }
public DisciplicaRepository(CursosDbContext context) : base(context) { _context = context; }
public CursosDestacadosViewComponent() { CursosDbContext context = new CursosDbContext(); _cursos = context.Cursos.ToList(); }
public ServicioAlumnos(CursosDbContext dbContext, IRepositorioAlumno repositorio, IUnitOfWork unitOfWork) { _dbContext = dbContext; _repositorio = repositorio; _unitOfWork = unitOfWork; }
public Manejador(CursosDbContext context, IMapper mapper) { _context = context; _mapper = mapper; }
public PersonaServices( CursosDbContext cursosDbContext ) { _cursosDbContext = cursosDbContext; }
public Manejador(CursosDbContext context, UserManager <Usuario> userManager, IJwtGenerador jwtGenerador) { _context = context; _jwtGenerador = jwtGenerador; _userManager = userManager; }
public Repository(CursosDbContext context) { _context = context; }
public WeatherForecastController(CursosDbContext _context) { this.context = _context; }
public CursoServices(CursosDbContext cursosDbContext) { _cursosDbContext = cursosDbContext; }
public CategoriasController(CursosDbContext context) { _context = context; }