/// <summary>
        /// Check if a schedule with pDay, pStartHour and pEndHour exist, if exist return the value include id from database
        /// else create and return values from database
        /// </summary>
        /// <param name="pDay"></param>
        /// <param name="pStartHour"></param>
        /// <param name="pEndHour"></param>
        /// <returns></returns>
        private Schedule existSchedule(string pDay, string pStartHour, string pEndHour)
        {
            var vSchedule = db.Schedules.Where(p => p.Day == pDay && p.StartHour == pStartHour && p.EndHour == pEndHour).FirstOrDefault();

            if (vSchedule != null)
            {
                return vSchedule;
            }
            else
            {
                //Create schedule and get id
                Schedule vNewSchedule = new Schedule();
                vNewSchedule.Day = pDay;
                vNewSchedule.StartHour = pStartHour;
                vNewSchedule.EndHour = pEndHour;
                vNewSchedule.CommissionsXProfessors = new List<CommissionXProfessor>();

                db.Schedules.Add(vNewSchedule);
                //db.SaveChanges();

                //vSchedule = db.Schedules.Where(p => p.Day == pDay && p.StartHour == pStartHour && p.EndHour == pEndHour).FirstOrDefault();

                //db.SaveChanges();
                return vNewSchedule;
            }
            //select * from Schedule where Day='Domingo' AND StartHour = '07:30 am' AND EndHour = '09:20 am'
        }
        /// <summary>
        /// Check if a schedule with pDay, pStartHour and pEndHour exist, if exist return the value include id from database
        /// else create and return values from database
        /// </summary>
        /// <param name="pDay"></param>
        /// <param name="pStartHour"></param>
        /// <param name="pEndHour"></param>
        /// <returns></returns>
        private Schedule existSchedule(string pDay, string pStartHour, string pEndHour)
        {
            var vSchedule = db.Schedules.Where(p => p.Day == pDay && p.StartHour == pStartHour && p.EndHour == pEndHour).FirstOrDefault();

            if (vSchedule != null)
            {
                return vSchedule;
            }
            else
            {
                //Create schedule and get id
                Schedule vNewSchedule = new Schedule();
                vNewSchedule.Day = pDay;
                vNewSchedule.StartHour = pStartHour;
                vNewSchedule.EndHour = pEndHour;
                vNewSchedule.ProjectsXProfessors = new List<ProjectXProfessor>();

                db.Schedules.Add(vNewSchedule);
                return vNewSchedule;
            }
        }
        public bool isValidScheduleClassroom(Schedule pNewSchedule, int pClassroomID, int pGroupID)
        {
            var vPeriod = Request.Cookies["Periodo"].Value;
            var vPeriodID = db.Periods.Find(int.Parse(vPeriod)).ID;

            var vSchedule = (from schedule in db.Schedules
                             join groupclass in db.GroupClassrooms on schedule.ID equals groupclass.ScheduleID
                             join g in db.Groups on groupclass.GroupID equals g.ID
                             where (groupclass.GroupID != pGroupID && groupclass.ClassroomID == pClassroomID &&
                                 schedule.Day == pNewSchedule.Day && g.PeriodID == vPeriodID)
                             select schedule).ToList();

            foreach (Schedule tempSchedule in vSchedule)
            {
                DateTime vTempScheduleStartHour = DateTime.Parse(tempSchedule.StartHour);
                DateTime vTempScheduleEndHour = DateTime.Parse(tempSchedule.EndHour);
                DateTime vNewScheduleStartHour = DateTime.Parse(pNewSchedule.StartHour);
                DateTime vNewScheduleEndHour = DateTime.Parse(pNewSchedule.EndHour);

                if ((vTempScheduleStartHour <= vNewScheduleStartHour && vNewScheduleStartHour <= vTempScheduleEndHour) ||
                    (vTempScheduleStartHour <= vNewScheduleEndHour && vNewScheduleEndHour <= vTempScheduleEndHour) ||
                    (vNewScheduleStartHour <= vTempScheduleStartHour && vTempScheduleStartHour <= vNewScheduleEndHour) ||
                    (vNewScheduleStartHour <= vTempScheduleEndHour && vTempScheduleEndHour <= vNewScheduleEndHour))
                {
                    return false;
                }
            }

            return true;
        }