コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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);
        }