/// <summary>
        /// Obtiene una lista de todas las disponibilidades de los profesores
        /// </summary>
        /// <returns>IEnumerable de DisponibilidadProfesorDTO</returns>
        public IEnumerable <DisponibilidadProfesorDetailsDTO> GetAllCurrent()
        {
            var disponibilidades = HorariosContext.DisponibilidadProfesores
                                   .Include(pc => pc.PeriodoCarrera)
                                   .Include(p => p.Profesores.PrioridadProfesor)
                                   .Where(c => c.PeriodoCarrera.Status == true);

            var cedulas = disponibilidades.Select(d => d.Cedula).Distinct().ToList();

            var result = new List <DisponibilidadProfesorDetailsDTO>();

            foreach (uint cedula in cedulas)
            {
                var disp = disponibilidades.Where(d => d.Cedula == cedula);
                var dto  = new DisponibilidadProfesorDetailsDTO
                {
                    Cedula         = cedula,
                    Disponibilidad = disp.ProjectTo <DisponibilidadProfesorDTO>(_mapper.ConfigurationProvider).ToList(),
                    HorasACumplir  = disp.FirstOrDefault(d => d.Cedula == cedula).Profesores.PrioridadProfesor.HorasACumplir,
                    HorasAsignadas = (byte)(disp.Sum(hf => hf.IdHoraFin) - disp.Sum(hi => hi.IdHoraInicio))
                };
                result.Add(dto);
            }
            return(result);
        }
Exemple #2
0
        //TODO: Quitar el remapeo de los metodos que lo usan y moverlo a una funcion
        /// <summary>
        /// Obtiene la disponibilidades de los profesores acorde a una prioridad
        /// y una materia
        /// </summary>
        /// <param name="idPrioridad">Id de la prioridad</param>
        /// <param name="codigo">Codigo de la materia</param>
        /// <returns>IEnumerable de DisponibilidadProfesorDetailsDTO</returns>
        public IEnumerable <DisponibilidadProfesorDetailsDTO> GetByPrioridadMateria(byte idPrioridad, ushort codigo)
        {
            var disponibilidades = HorariosContext.DisponibilidadProfesores
                                   .Include(pc => pc.PeriodoCarrera)
                                   .Include(pm => pm.Profesores.ProfesoresMaterias)
                                   .Include(p => p.Profesores.PrioridadProfesor)
                                   .Where
                                   (
                c => c.PeriodoCarrera.Status == true &&
                c.Profesores.PrioridadProfesor.IdPrioridad == idPrioridad &&
                c.Profesores.ProfesoresMaterias.FirstOrDefault(pm => pm.Codigo == codigo) != null
                                   );

            List <DisponibilidadProfesorDetailsDTO> result = new List <DisponibilidadProfesorDetailsDTO>();

            foreach (uint cedula in disponibilidades.Select(d => d.Cedula).Distinct())
            {
                var disp = disponibilidades.Where(d => d.Cedula == cedula);
                DisponibilidadProfesorDetailsDTO dto = new DisponibilidadProfesorDetailsDTO
                {
                    Cedula         = cedula,
                    Disponibilidad = disp.ProjectTo <DisponibilidadProfesorDTO>(_mapper.ConfigurationProvider),
                    HorasACumplir  = disp.FirstOrDefault(d => d.Cedula == cedula).Profesores.PrioridadProfesor.HorasACumplir,
                    HorasAsignadas = (byte)(disp.Sum(hf => hf.IdHoraFin) - disp.Sum(hi => hi.IdHoraInicio))
                };
                result.Add(dto);
            }
            return(result);
        }
        public IActionResult GetHorasAsignadasACumplir(int cedula)
        {
            var disp = new DisponibilidadProfesorDetailsDTO()
            {
                Cedula         = (uint)cedula,
                HorasACumplir  = _db.ProfesorRepository.GetHorasACumplir(cedula),
                HorasAsignadas = _db.DisponibilidadProfesorRepository.GetHorasAsignadas(cedula)
            };

            return(new ObjectResult(disp));
        }
        /// <summary>
        /// Obtiene una lista con todas las disponibilidad del profesor indicado
        /// </summary>
        /// <param name="cedula">Cedula del profesor</param>
        /// <returns>DisponibilidadProfesorDetailsDTO</returns>
        public DisponibilidadProfesorDetailsDTO GetByCedula(int cedula)
        {
            var disponibilidad = HorariosContext.DisponibilidadProfesores
                                 .Where(c => c.Cedula == cedula && c.PeriodoCarrera.Status)
                                 .ProjectTo <DisponibilidadProfesorDTO>(_mapper.ConfigurationProvider)
                                 .ToList();

            var result = new DisponibilidadProfesorDetailsDTO
            {
                Cedula         = (uint)cedula,
                Disponibilidad = disponibilidad,
                HorasAsignadas =
                    (byte)(disponibilidad.Sum(hf => hf.IdHoraFin) - disponibilidad.Sum(hi => hi.IdHoraInicio))
            };

            return(result);
        }
Exemple #5
0
        /// <summary>
        /// Obtiene una lista con todas las disponibilidad del profesor indicado
        /// </summary>
        /// <param name="cedula">Cedula del profesor</param>
        /// <returns>DisponibilidadProfesorDetailsDTO</returns>
        public DisponibilidadProfesorDetailsDTO GetByCedula(int cedula)
        {
            var disponibilidad = HorariosContext.DisponibilidadProfesores
                                 .Where(c => c.Cedula == cedula && c.PeriodoCarrera.Status == true);

            DisponibilidadProfesorDetailsDTO result = new DisponibilidadProfesorDetailsDTO();

            result.Cedula = (uint)cedula;
            if (disponibilidad.Count() == 0)
            {
                return(result);
            }

            result.Disponibilidad = disponibilidad.ProjectTo <DisponibilidadProfesorDTO>(_mapper.ConfigurationProvider);
            result.HorasAsignadas = (byte)(disponibilidad.Sum(hf => hf.IdHoraFin) - disponibilidad.Sum(hi => hi.IdHoraInicio));

            return(result);
        }
Exemple #6
0
        /// <summary>
        /// Obtiene una lista con todas las disponibilidad del profesor indicado en el dia indicado
        /// </summary>
        /// <param name="cedula">Cedula del profesor</param>
        /// <param name="idDia">Id del dia a buscar</param>
        /// <returns>DisponibilidadProfesorDetailsDTO</returns>
        public DisponibilidadProfesorDetailsDTO GetByCedulaDia(int cedula, byte idDia)
        {
            var disponibilidad = HorariosContext.DisponibilidadProfesores
                                 .Include(p => p.Profesores.PrioridadProfesor)
                                 .Where(c => c.Cedula == cedula && c.PeriodoCarrera.Status == true && c.IdDia == idDia);

            DisponibilidadProfesorDetailsDTO result = new DisponibilidadProfesorDetailsDTO();

            result.Cedula = (uint)cedula;
            if (disponibilidad.Count() == 0)
            {
                return(result);
            }

            result.Disponibilidad = disponibilidad.ProjectTo <DisponibilidadProfesorDTO>(_mapper.ConfigurationProvider);
            result.HorasACumplir  = disponibilidad.FirstOrDefault().Profesores.PrioridadProfesor.HorasACumplir;
            result.HorasAsignadas = (byte)(disponibilidad.Sum(hf => hf.IdHoraFin) - disponibilidad.Sum(hi => hi.IdHoraInicio));

            return(result);
        }
        /// <summary>
        /// Obtiene una lista con todas las disponibilidad del profesor indicado en el dia indicado
        /// </summary>
        /// <param name="cedula">Cedula del profesor</param>
        /// <param name="idDia">Id del dia a buscar</param>
        /// <returns>DisponibilidadProfesorDetailsDTO</returns>
        public DisponibilidadProfesorDetailsDTO GetByCedulaDia(int cedula, byte idDia)
        {
            var disponibilidad = HorariosContext.DisponibilidadProfesores
                                 .Include(p => p.Profesores.PrioridadProfesor)
                                 .Where(c => c.Cedula == cedula && c.PeriodoCarrera.Status == true && c.IdDia == idDia)
                                 .ToList();

            var result = new DisponibilidadProfesorDetailsDTO
            {
                Cedula = (uint)cedula
            };

            if (!disponibilidad.Any())
            {
                return(result);
            }

            result.Disponibilidad = _mapper.Map <List <DisponibilidadProfesorDTO> >(disponibilidad);
            result.HorasACumplir  = disponibilidad.FirstOrDefault().Profesores.PrioridadProfesor.HorasACumplir;
            result.HorasAsignadas = (byte)(disponibilidad.Sum(hf => hf.IdHoraFin) - disponibilidad.Sum(hi => hi.IdHoraInicio));

            return(result);
        }