コード例 #1
0
ファイル: AulaInfoManager.cs プロジェクト: Valen14/infounlp3D
    /** Retorna el numero de casilleros en el horario en la grilla de horarios entrel el inicio y el final de la clase */
    protected static int getRepeatCellCount(List <AulaTime> timesOfDay, AulaData criteria)
    {
        int startPos = -1;
        int endPos   = -1;
        int currPos  = -1;

        foreach (AulaTime aTime in timesOfDay)
        {
            currPos++;
            if (startPos > -1 && endPos > -1)
            {
                break;
            }
            if (aTime.h == criteria.horaInicio.h && aTime.m == criteria.horaInicio.m)
            {
                startPos = currPos;
            }
            if (aTime.h == criteria.horaFin.h && aTime.m == criteria.horaFin.m)
            {
                endPos = currPos;
            }
        }
//		Debug.Log ("" + criteria.horaFin.h + ":" + criteria.horaFin.m + " -- " + endPos + " " + startPos + " = " + (endPos - startPos));
        return(endPos - startPos - 1);
    }
コード例 #2
0
ファイル: AulaInfoManager.cs プロジェクト: Valen14/infounlp3D
    /** Reorganiza la informacion en forma de agenda semanala */
    protected static void fillWeeklySchedule(int aulaID, int quarter, bool allTimesOfDays)
    {
        // Obtener las lineas de la tabla (8:00, 8:30, 9:00, 9:30... etc);
        List <AulaTime> aulaTimes = getTimesOfDay();

        // Iterar por los dias de la semana de Lun a Sab
        Dictionary <int, Dictionary <AulaTime, AulaData> > days = new Dictionary <int, Dictionary <AulaTime, AulaData> > ();

        foreach (int day in DAYS_OF_WEEK)
        {
            // Por cada horario crear la celda y agregarlo al día
            Dictionary <AulaTime, AulaData> aCell = new Dictionary <AulaTime, AulaData> ();
            // Si se detecto el inicio de una clase, entonces "rellenar" o repetir celdas hasta la finalizacion de la misma
            int      repeatCells     = 0;
            AulaData currentAulaData = null;
            foreach (AulaTime aTime in aulaTimes)
            {
//				Debug.Log ("day: " + dias[day] + " - hhmm:" + aTime.h + ":" + aTime.m);

                // Qudan celdas a rellenar?
                if (repeatCells > 0)
                {
                    repeatCells--;
                    aCell.Add(aTime, currentAulaData);
                    continue;
                }

                // Si ya no quedan celdas a rellenar, entonces buscar la clase (puede haber o no clases para el horario actual)
                AulaData aulaData = findClase(aulaID, quarter, day, aTime.h, aTime.m);
                if (aulaData != null)
                {
                    repeatCells     = (allTimesOfDays ? getRepeatCellCount(aulaTimes, aulaData) : 0);
                    currentAulaData = aulaData;
                }
                aCell.Add(aTime, aulaData);
            }
            days.Add(day, aCell);
        }
        // Incorporar la actividad del dia a la grilla
        weeklySchedule[quarter].Add(aulaID, days);
    }
コード例 #3
0
ファイル: AulaInfoManager.cs プロジェクト: Valen14/infounlp3D
    /** Busca la actividad para el aula, cuatrimestre, dia y hora indicados */
    public static AulaData findClase(int aulaID, int quarter, int day, string h, string m)
    {
        AulaData retValue = null;

//		Debug.Log (aulaID + " " + quarter + " " + day + " " + h + " " + m);
        if (scheduleByAula[quarter] == null || scheduleByAula[quarter] [aulaID] == null || scheduleByAula[quarter] [aulaID].values == null)
        {
            return(retValue);
        }
        foreach (AulaData aData in scheduleByAula[quarter][aulaID].values)
        {
            if (aData.dia == day && aData.horaInicio.h == h && aData.horaInicio.m == m)
            {
//				Debug.Log ("Encontrada: " + aulas[aulaID] + ". Titulo:" + aData.titulo + ". " + aulaID + " " + quarter + " " + dias[day] + " " + h + " " + m);
                // Aprovechamos y le seteamos aulaID y aulaName
                aData.aulaID   = aulaID;
                aData.aulaName = aulas [aulaID];
                retValue       = aData;
                break;
            }
        }
        return(retValue);
    }