/// <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); }
//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); }
/// <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); }
/// <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); }