public static List <ListaSesiones> CargaSesionesProfesores(DateTime fecha, long oid_promocion) { HorarioList horarios = HorarioList.GetList(false); ClasePracticaList practicas = ClasePracticaList.GetList(); if (horarios != null) { List <ListaSesiones> lista = new List <ListaSesiones>(); foreach (HorarioInfo info in horarios) { if (info.FechaInicial.ToShortDateString() == fecha.ToShortDateString() && info.OidPromocion != oid_promocion) { ListaSesiones list = new ListaSesiones(fecha); Horario item = Horario.Get(info.Oid); foreach (Sesion ses in item.Sesions) { foreach (SesionAuxiliar aux in list) { if (ses.Fecha.ToShortDateString() == aux.Fecha.ToShortDateString() && ses.Hora.ToShortTimeString() == aux.Hora.ToShortTimeString()) { aux.OidProfesor = ses.OidProfesor; aux.OidClasePractica = ses.OidClasePractica; if (ses.OidClasePractica != 0) { aux.Incompatible = practicas.GetItem(ses.OidClasePractica).Incompatible; } else { aux.Incompatible = 0; } break; } } } lista.Add(list); item.CloseSession(); } } return(lista); } return(null); }
/// <summary> /// Retrieve the complete list from db /// </summary> /// <returns>SesionList</returns> public static SesionList GetSesionesList() { CriteriaEx criteria = Sesion.GetCriteria(Sesion.OpenSession()); criteria.Childs = false; criteria.Query = Sesions.SELECT_SESIONES_ORDENADAS(); //No criteria. Retrieve all de List SesionList list = DataPortal.Fetch <SesionList>(criteria); CloseSession(criteria.SessionCode); SesionList sesiones = new SesionList(); ClaseTeoricaList teoricas = ClaseTeoricaList.GetList(); ClasePracticaList practicas = ClasePracticaList.GetList(); ClaseExtraList extras = ClaseExtraList.GetList(); int count = 0; long oid_modulo = 0; sesiones.IsReadOnly = false; foreach (SesionInfo item in list) { if (item.OidClaseTeorica > 0 || item.OidClasePractica > 0 || item.OidClaseExtra > 0) { long oid_modulo_item = 0; if (item.OidClasePractica != 0) { oid_modulo_item = practicas.GetItem(item.OidClasePractica).OidModulo; } if (item.OidClaseTeorica != 0) { oid_modulo_item = teoricas.GetItem(item.OidClaseTeorica).OidModulo; } if (item.OidClaseExtra != 0) { oid_modulo_item = extras.GetItem(item.OidClaseExtra).OidModulo; } if (oid_modulo_item > 0) { if (count == 0) { sesiones.AddItem(item); oid_modulo = oid_modulo_item; count++; } else { SesionInfo ultima = sesiones[sesiones.Count - 1]; if (ultima.OidHorario == item.OidHorario && ultima.Fecha.Date.Equals(item.Fecha.Date) && ultima.Hora.AddHours(count).Hour.Equals(item.Hora.Hour) && ultima.OidProfesor == item.OidProfesor && oid_modulo_item == oid_modulo && ((ultima.OidClasePractica != 0 && item.OidClasePractica != 0) || (ultima.OidClaseTeorica != 0 && item.OidClaseTeorica != 0) || (ultima.OidClaseExtra != 0 && item.OidClaseExtra != 0))) { count++; if (count == 3) { count = 0; } } else { sesiones.AddItem(item); oid_modulo = oid_modulo_item; count = 1; } } } } } sesiones.IsReadOnly = true; return(sesiones); }