コード例 #1
0
 public LeccionServices(CursosDbContext cursosDbContext)
 {
     _cursosDbContext = cursosDbContext;
 }
コード例 #2
0
        //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();
             *  }
             * }
             */
        }
コード例 #3
0
 public CursoRepository(CursosDbContext context) : base(context)
 {
     _context = context;
 }
コード例 #4
0
 public RepositorioAlumnos(CursosDbContext dbContext)
 {
     _dbContext = dbContext;
 }
コード例 #5
0
 public UnitofWork(CursosDbContext dbContext)
 {
     _dbContext = dbContext;
 }
コード例 #6
0
 public DepartamentoRepository(CursosDbContext context) : base(context)
 {
     _context = context;
 }
コード例 #7
0
 public CursosController(CursosDbContext context)
 {
     _context = context;
 }
コード例 #8
0
 public DisciplicaRepository(CursosDbContext context) : base(context)
 {
     _context = context;
 }
コード例 #9
0
        public CursosDestacadosViewComponent()
        {
            CursosDbContext context = new CursosDbContext();

            _cursos = context.Cursos.ToList();
        }
コード例 #10
0
 public ServicioAlumnos(CursosDbContext dbContext, IRepositorioAlumno repositorio, IUnitOfWork unitOfWork)
 {
     _dbContext   = dbContext;
     _repositorio = repositorio;
     _unitOfWork  = unitOfWork;
 }
コード例 #11
0
 public Manejador(CursosDbContext context, IMapper mapper)
 {
     _context = context;
     _mapper  = mapper;
 }
コード例 #12
0
 public PersonaServices(
     CursosDbContext cursosDbContext
     )
 {
     _cursosDbContext = cursosDbContext;
 }
コード例 #13
0
ファイル: Registrar.cs プロジェクト: MESPA/ProjectAspNetCoore
 public Manejador(CursosDbContext context, UserManager <Usuario> userManager, IJwtGenerador jwtGenerador)
 {
     _context      = context;
     _jwtGenerador = jwtGenerador;
     _userManager  = userManager;
 }
コード例 #14
0
 public Repository(CursosDbContext context)
 {
     _context = context;
 }
コード例 #15
0
 public WeatherForecastController(CursosDbContext _context)
 {
     this.context = _context;
 }
コード例 #16
0
ファイル: CursoServices.cs プロジェクト: brandihd2000/CursoRd
 public CursoServices(CursosDbContext cursosDbContext)
 {
     _cursosDbContext = cursosDbContext;
 }
コード例 #17
0
 public CategoriasController(CursosDbContext context)
 {
     _context = context;
 }