Ejemplo n.º 1
0
        /// <summary>
        /// Esteban Segura Benavides
        /// Check posibles conflicts with the new project schedule and the all commission schedule related with determinated professor
        /// </summary>
        /// <param name="pProfessorID"></param>
        /// <param name="pSchedules"></param>
        /// <returns>true if found any problem with the schedules</returns>
        public bool existShockScheduleCommission(int pProfessorID, List <ScheduleComission> pSchedules)
        {
            var vPeriod   = Request.Cookies["Periodo"].Value;
            var vPeriodID = db.Periods.Find(int.Parse(vPeriod)).ID;

            //Get the day, starthour and endhour where professor was assign in commission
            var commission_schedule = db.SP_getProfessorScheduleCommission(pProfessorID, vPeriodID).ToList();

            //Verify each scheedule with the new assign information
            foreach (var vNewSchedule in pSchedules)
            {
                foreach (var vActualScheduleCommission in commission_schedule)
                {
                    if (vNewSchedule.Day.Equals(vActualScheduleCommission.Day))
                    {
                        var vActualStartHour = DateTime.Parse(vActualScheduleCommission.StartHour);
                        var vActualEndHour   = DateTime.Parse(vActualScheduleCommission.EndHour);
                        var vNewStartHour    = DateTime.Parse(vNewSchedule.StartHour);
                        var vNewEndHour      = DateTime.Parse(vNewSchedule.EndHour);

                        //Check the range of the schedule
                        if ((vActualStartHour <= vNewStartHour && vNewStartHour <= vActualEndHour) ||
                            (vActualStartHour <= vNewEndHour && vNewEndHour <= vActualEndHour) ||
                            (vNewStartHour <= vActualStartHour && vActualStartHour <= vNewEndHour) ||
                            (vNewStartHour <= vActualEndHour && vActualEndHour <= vNewEndHour))
                        {
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
Ejemplo n.º 2
0
        private bool existScheduleConflictCommissionWithoutCommissionSelect(int pProfessorID, int pPeriodID, List <ScheduleComission> pSchedules, int pCommissionID)
        {
            //Get the day, starthour and endhour where professor was assign in commission
            var commission_schedule = db.SP_getProfessorScheduleCommission(pProfessorID, pPeriodID).ToList();

            //Verify each scheedule with the new assign information
            foreach (var vNewSchedule in pSchedules)
            {
                foreach (var vActualScheduleCommission in commission_schedule)
                {
                    if (vActualScheduleCommission.ID != pCommissionID)
                    {
                        bool vIsScheduleCorrect = verifyRange(vNewSchedule.Day, vActualScheduleCommission.Day, vActualScheduleCommission.StartHour,
                                                              vActualScheduleCommission.EndHour, vNewSchedule.StartHour, vNewSchedule.EndHour);
                        if (vIsScheduleCorrect)
                        {
                            return(vIsScheduleCorrect);
                        }
                    }
                }
            }
            return(false);
        }