コード例 #1
0
        public bool CheckIfCanSignUpForCourseBasedOnTimes(int crn, string studentID, string semesterID)
        {
            //get all courses that a student is currently signed up for
            //check if those courses time's directly conflict with the new course's time
            bool          canSignUp      = true;
            CourseDAL     courseGetter   = new CourseDAL();
            List <Course> currentCourses = courseGetter.GetCoursesByStudentIDAndSemester(studentID, semesterID);
            CourseTimeDAL timeChecker    = new CourseTimeDAL();
            CourseTime    desiredTime    = timeChecker.GetCourseTimeByCRN(crn);

            foreach (var currentCourse in currentCourses)
            {
                CourseTime currentTime = timeChecker.GetCourseTimeByCRN(currentCourse.CRN);
                foreach (var currentDay in currentTime.CourseDays.ToCharArray())
                {
                    foreach (var desiredDays in desiredTime.CourseDays.ToCharArray())
                    {
                        if (desiredDays == currentDay)
                        {
                            if (desiredTime.CourseStart.TimeOfDay > currentTime.CourseStart.TimeOfDay &&
                                desiredTime.CourseStart.TimeOfDay < currentTime.CourseEnd.TimeOfDay)
                            {
                                canSignUp = false;
                                return(canSignUp);
                            }
                        }
                    }
                }
            }

            return(canSignUp);
        }
コード例 #2
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,StartTime,EndTime,WeekdayId,CourseId")] CourseTime courseTime)
        {
            if (id != courseTime.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(courseTime);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CourseTimeExists(courseTime.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CourseId"]  = new SelectList(_context.Course, "Id", "Id", courseTime.CourseId);
            ViewData["WeekdayId"] = new SelectList(_context.Weekday, "Id", "Id", courseTime.WeekdayId);
            return(View(courseTime));
        }
コード例 #3
0
        public bool AddTimes(CourseTime courseTime)
        {
            _sDbContext.Add(courseTime);
            var time = _sDbContext.SaveChanges();

            return(time > 0 ? true : false);
        }
コード例 #4
0
        public CourseTime getCourseTime(int index)
        {
            CourseTime ct    = new CourseTime();
            string     tmnow = DateTime.Now.ToString("HHmm");
            int        week  = (int)DateTime.Now.DayOfWeek;
            string     sql   = "select * from edu_coursetime where week=" + week + " and i=" + index;

            sql = sql.Replace("P1", tmnow);

            SQLiteCommand    command = new SQLiteCommand(sql, m_dbConnection);
            SQLiteDataReader reader  = command.ExecuteReader();

            if (reader.Read())
            {
                ct.week    = week;
                ct.index   = index;
                ct.timeOn  = reader["timeon"].ToString();
                ct.timeOff = reader["timeoff"].ToString();
                return(ct);
            }
            else
            {
                return(null);
            }
        }
コード例 #5
0
 public bool Create(Course model, int LanguageId, int TimeId, int BranchId)
 {
     using (var context = new CourseContext())
     {
         Course     entity     = model;
         Time       time       = context.Time.Find(TimeId);
         Language   language   = context.Language.Find(LanguageId);
         Branch     branch     = context.Branch.Find(BranchId);
         CourseTime courseTime = new CourseTime()
         {
             Course = entity, Time = time
         };
         CourseLanguage courseLanguage = new CourseLanguage()
         {
             Course = entity, Language = language
         };
         BranchCourse branchCourse = new BranchCourse()
         {
             Branch = branch, Course = entity
         };
         context.Add(courseTime);
         context.Add(courseLanguage);
         context.Add(branchCourse);
         context.SaveChanges();
         return(true);
     }
 }
コード例 #6
0
        /// <summary>
        /// 添加子条目
        /// </summary>
        /// <param name="dayOfWeek"></param>
        /// <param name="courseTime"></param>
        /// <param name="isLongCourse"></param>
        /// <param name="isLab"></param>
        /// <param name="weekExpression"></param>
        /// <returns></returns>
        public CourseSubEntry AddSubEntry(DayOfWeek dayOfWeek, CourseTime courseTime, bool isLongCourse, bool isLab, string weekExpression)
        {
            var r = new CourseSubEntry(CourseName, dayOfWeek, courseTime, isLongCourse, isLab, weekExpression);

            AddSubEntry(r);
            return(r);
        }
コード例 #7
0
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <GetCoachRelatedFilter> >(request);
            //获取有课的时间列表
            var sql = @"
 SELECT 
	BeginTime
FROM dbo.CoachCourse
WHERE State!='Finished'
	AND ReservedPersonId=@ReservedPersonId
	AND BeginTime>@BeginTime 
	AND EndTime<@EndTime

";
            var cmd = CommandHelper.CreateText <CourseTime>(FetchType.Fetch, sql);

            cmd.Params.Add("@ReservedPersonId", req.Filter.CurrentUserId);
            var BeginTime = Convert.ToDateTime(req.Filter.SyllabusTime.ToShortDateString());
            var EndTime   = BeginTime.AddDays(1).AddMinutes(-1);

            cmd.Params.Add("@BeginTime", BeginTime);
            cmd.Params.Add("@EndTime", EndTime);
            var result = DbContext.GetInstance().Execute(cmd);

            var startTimeStr       = req.Filter.SyllabusTime.ToString("yyyy-MM-dd ") + "07:00:00";
            var startTime          = Convert.ToDateTime(startTimeStr);
            List <CourseTime> list = new List <CourseTime>();
            var haveCourseList     = result.Entities.ToList <EntityBase, CourseTime>();

            //构造这一天的开始时间列表, 并把有课的标记出来
            for (int i = 8; i < 22; i++)//约课开始时间范围 08-21点
            {
                CourseTime courseTime = new CourseTime();
                startTime = startTime.AddHours(1);
                var beginTime = (DateTime?)startTime;
                courseTime.BeginTime = beginTime;
                var obj = haveCourseList.Where(e => e.BeginTime == beginTime).FirstOrDefault();
                if (obj != null)
                {
                    courseTime.IsHaveCourse = true;
                }
                list.Add(courseTime);
            }

            //只能约当前时间四个小时后的课
            var timePoint = DateTime.Now.AddHours(4);

            foreach (var item in list)
            {
                if (item.BeginTime < timePoint)
                {
                    item.IsHaveCourse = true;//置灰不能选择
                }
            }

            result.Entities.Clear();
            result.Entities.AddRange(list);
            return(result);
        }
コード例 #8
0
 private void updateCourseTime(int Id, int courseRef, int courseTimeNo)
 {
     CourseTime = new CourseTime()
     {
         Id = Id, CourseRef = courseRef, CourseTimeNo = courseTimeNo
     };
     winUpdateCourseTime.Show();
 }
コード例 #9
0
ファイル: CourseContent.cs プロジェクト: HIT-ReFreSH/Schedule
 internal CourseContent(string courseName, DayOfWeek dayOfWeek, CourseTime courseTime, bool isLongCourse,
                        bool isLab, Dictionary <int, CourseCell> weekInformation)
 {
     CourseName      = courseName;
     DayOfWeek       = dayOfWeek;
     CourseTime      = courseTime;
     IsLongCourse    = isLongCourse;
     IsLab           = isLab;
     WeekInformation = weekInformation;
 }
コード例 #10
0
ファイル: Global.cs プロジェクト: chenliang123/liaoNingYiDong
        public static void setLessonIndex(int n)
        {
            m_lessonindex = n;
            CourseTime ct = m_db.getCourseTime(n);

            if (ct != null)
            {
                m_timeon  = ct.timeOn;
                m_timeoff = ct.timeOff;
            }
        }
コード例 #11
0
 /// <summary>
 /// 第几节课
 /// </summary>
 /// <param name="courseTime"></param>
 /// <returns></returns>
 public static string ToFriendlyName(this CourseTime courseTime)
 {
     return(courseTime switch
     {
         CourseTime.Noon => ScheduleMasterString.中午,
         CourseTime.C12 => ScheduleMasterString.一二节,
         CourseTime.C34 => ScheduleMasterString.四节,
         CourseTime.C56 => ScheduleMasterString.五六节,
         CourseTime.C78 => ScheduleMasterString.七八节,
         CourseTime.C9A => ScheduleMasterString.晚上,
         _ => throw new ArgumentOutOfRangeException(nameof(courseTime), courseTime, null)
     });
コード例 #12
0
 /// <inheritdoc/>
 public string CourseTimeToFriendlyName(CourseTime courseTime)
 {
     return(courseTime switch
     {
         CourseTime.Noon => "中午",
         CourseTime.C12 => "一二节",
         CourseTime.C34 => "三四节",
         CourseTime.C56 => "五六节",
         CourseTime.C78 => "七八节",
         CourseTime.C9A => "晚上",
         _ => throw new ArgumentOutOfRangeException(nameof(courseTime), courseTime, null)
     });
コード例 #13
0
        public async Task <IActionResult> Create([Bind("Id,StartTime,EndTime,WeekdayId,CourseId")] CourseTime courseTime)
        {
            if (ModelState.IsValid)
            {
                _context.Add(courseTime);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CourseId"]  = new SelectList(_context.Course, "Id", "Id", courseTime.CourseId);
            ViewData["WeekdayId"] = new SelectList(_context.Weekday, "Id", "Id", courseTime.WeekdayId);
            return(View(courseTime));
        }
コード例 #14
0
        public void TestCourseTimeConstructor()
        {
            int        courseTimeId = 1;
            DateTime   courseStart  = DateTime.Now;
            DateTime   courseEnd    = DateTime.Now.AddHours(1.5);
            string     courseDays   = "MWF";
            CourseTime courseTime   = new CourseTime(courseTimeId, courseStart, courseEnd, courseDays);

            Assert.AreEqual(courseTime.CourseTimeID, courseTimeId);
            Assert.AreEqual(courseTime.CourseStart, courseStart);
            Assert.AreEqual(courseTime.CourseEnd, courseEnd);
            Assert.AreEqual(courseTime.CourseDays, courseDays);
        }
コード例 #15
0
        protected void btnUpdateSave_DirectClick(object sender, DirectEventArgs e)
        {
            int returnValue = CourseTime.save();

            if (returnValue > 0)
            {
                X.Msg.Alert("UYARI", "Güncelleme Yapılmıştır").Show();
                CourseTime = new CourseTime();
            }
            else
            {
                X.Msg.Alert("UYARI", "Güncelleme yapılamadı.Lütfen tekrar deneyiniz.").Show();
            }
            CourseTime courseTime = new CourseTime();
        }
コード例 #16
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="schoolId"></param>
        /// <param name="days"></param>
        /// <returns></returns>
        private static List <CoursesOneDay> GetLessonList(int userId, int schoolId, int days)
        {
            List <LessonInfo> allLessionList = SchoolBiz.GetUserLessions(schoolId, userId).ToList();
            DateTime          dtNow          = DateTime.Now.Date;

            if (days > 0)
            {
                allLessionList.Where(l => l.LessonDate.Date.Subtract(dtNow).TotalDays >= 0 && l.LessonDate.Date.Subtract(dtNow).TotalDays <= days).ToList();
            }

            List <CoursesOneDay> dayLessonsList = new List <CoursesOneDay>(0);

            if (allLessionList.Count > 0)
            {
                var daysList = allLessionList.Select(l => l.LessonDate.Date).Distinct().OrderBy(d => d);
                foreach (var item in daysList)
                {
                    var dayLessons  = allLessionList.Where(l => l.LessonDate.Date == item);
                    var dayClassIds = dayLessons.Select(l => l.ClassId).Distinct();

                    List <CourseTime> ctList = new List <CourseTime>(0);
                    foreach (var cId in dayClassIds)
                    {
                        var        dls = dayLessons.Where(l => l.ClassId == cId);
                        CourseTime ct  = new CourseTime {
                            Course = new CourseInfo {
                                Name = dls.First().ClassName
                            }
                        };
                        foreach (var time in dls.OrderBy(t => t.LessonStartTime))
                        {
                            ct.TimePart.Add(time.LessonStartTime.ToString("HH:mm") + " - " + time.LessonEndTime.ToString("HH:mm"));
                        }

                        ctList.Add(ct);
                    }

                    CoursesOneDay oneDay = new CoursesOneDay
                    {
                        Date       = item.ToString("yyyy-MM-dd"),
                        CourseTime = ctList
                    };

                    dayLessonsList.Add(oneDay);
                }
            }
            return(dayLessonsList);
        }
コード例 #17
0
ファイル: XmlDocService.cs プロジェクト: 20154530/IpgwCore
        /// <summary>
        /// 通过学期获取课表
        /// </summary>
        private CourseSet GetCourseSetNode(String term)
        {
            StreamReader reader      = new StreamReader(App.RootPath + App.CourseData, Encoding.UTF8);
            XmlDocument  xmlDocument = new XmlDocument();

            xmlDocument.Load(reader);
            reader.Close();

            XmlElement  root = xmlDocument.DocumentElement;
            XmlNodeList xnl  = root.SelectNodes("/Courses/CourseSet");
            XmlNodeList xnls = null;

            if (xnl.Count == 0)
            {
                return(null);
            }

            CourseSet courseSet = new CourseSet();

            foreach (XmlNode xn in xnl)
            {
                if (xn.Attributes["Term"].Value.Equals(term))
                {
                    xnls = xn.ChildNodes; break;
                }
            }

            if (xnls != null && xnls.Count > 0)
            {
                courseSet.Term    = term;
                courseSet.Courses = new List <Course>();
                foreach (XmlNode xn in xnls)
                {
                    Course temp = new Course
                    {
                        CourseName    = xn.Attributes["Name"].Value,
                        CourseTeacher = xn.Attributes["Teacher"].Value,
                        CourseLoc     = xn.Attributes["Loc"].Value,
                        CourseDur     = xn.Attributes["Dur"].Value,
                        CourseTime    = CourseTime.FromString(xn.Attributes["Time"].Value)
                    };

                    courseSet.Courses.Add(temp);
                }
            }

            return(courseSet);
        }
コード例 #18
0
ファイル: WebCourse.cs プロジェクト: EroniX/projecteszkozok
 /// <summary>
 /// Az objektum inicializálásáért felelős metódus
 /// </summary>
 /// <param name="values">Az értékek</param>
 public void Initialize(string[] values)
 {
     Name  = values[0];
     Id    = values[1];
     Time  = CourseTime.ToCourseTime(values[2]);
     Room  = values[3];
     Weeks = string.IsNullOrEmpty(values[4])
         ? Enumerable.Empty <int>()
         : values[4].Split(',').Select(int.Parse);
     Description = values[5];
     Type        = EnumUtility.GetValueFromDescription <CourseType>(values[6]);
     Group       = int.Parse(values[7]);
     HeadCount   = int.Parse(values[8]);
     Number      = int.Parse(values[9]) + int.Parse(values[10]);
     Teachers    = values[11].Split(',');
 }
コード例 #19
0
        //
        public CourseTime GetCourseTimeByCRN(int CRN)
        {
            MySqlConnection   dbConnection = DbConnection.GetConnection();
            List <CourseTime> times        = new List <CourseTime>();

            using (dbConnection)
            {
                dbConnection.Open();

                var selectQuery =
                    "SELECT course_times.* FROM courses, course_times WHERE courses.course_time_id = course_times.course_time_id AND courses.CRN = @CRN";

                using (MySqlCommand cmd = new MySqlCommand(selectQuery, dbConnection))
                {
                    cmd.Parameters.AddWithValue("@CRN", CRN);
                    using (MySqlDataReader queryResultReader = cmd.ExecuteReader())
                    {
                        int courseTimeOrdinal  = queryResultReader.GetOrdinal("course_time_id");
                        int courseStartOrdinal = queryResultReader.GetOrdinal("course_start");
                        int courseEndOrdinal   = queryResultReader.GetOrdinal("course_end");
                        int courseDaysOrdinal  = queryResultReader.GetOrdinal("course_days");


                        while (queryResultReader.Read())
                        {
                            int courseTimeID = queryResultReader[courseTimeOrdinal] == DBNull.Value
                                ? default(int)
                                : queryResultReader.GetInt32(courseTimeOrdinal);
                            DateTime courseStart = queryResultReader[courseStartOrdinal] == DBNull.Value
                                ? default(DateTime)
                                : queryResultReader.GetDateTime(courseStartOrdinal);
                            DateTime courseEnd = queryResultReader[courseEndOrdinal] == DBNull.Value
                                ? default(DateTime)
                                : queryResultReader.GetDateTime(courseEndOrdinal);
                            string courseDays = queryResultReader[courseDaysOrdinal] == DBNull.Value
                                ? default(string)
                                : queryResultReader.GetString(courseDaysOrdinal);
                            CourseTime currentTime = new CourseTime(courseTimeID, courseStart, courseEnd, courseDays);
                            return(currentTime);
                        }
                    }

                    return(null);
                }
            }
        }
コード例 #20
0
        public List <CourseTime> GetAllCourseTimes()
        {
            MySqlConnection   dbConnection = DbConnection.GetConnection();
            List <CourseTime> times        = new List <CourseTime>();

            using (dbConnection)
            {
                dbConnection.Open();

                var selectQuery =
                    "select * from course_times";

                using (MySqlCommand cmd = new MySqlCommand(selectQuery, dbConnection))
                {
                    using (MySqlDataReader queryResultReader = cmd.ExecuteReader())
                    {
                        int courseTimeOrdinal  = queryResultReader.GetOrdinal("course_time_id");
                        int courseStartOrdinal = queryResultReader.GetOrdinal("course_start");
                        int courseEndOrdinal   = queryResultReader.GetOrdinal("course_end");
                        int courseDaysOrdinal  = queryResultReader.GetOrdinal("course_days");


                        while (queryResultReader.Read())
                        {
                            int courseTimeID = queryResultReader[courseTimeOrdinal] == DBNull.Value
                                ? default(int)
                                : queryResultReader.GetInt32(courseTimeOrdinal);
                            DateTime courseStart = queryResultReader[courseStartOrdinal] == DBNull.Value
                                ? default(DateTime)
                                : queryResultReader.GetDateTime(courseStartOrdinal);
                            DateTime courseEnd = queryResultReader[courseEndOrdinal] == DBNull.Value
                                ? default(DateTime)
                                : queryResultReader.GetDateTime(courseEndOrdinal);
                            string courseDays = queryResultReader[courseDaysOrdinal] == DBNull.Value
                                ? default(string)
                                : queryResultReader.GetString(courseDaysOrdinal);
                            CourseTime currentTime = new CourseTime(courseTimeID, courseStart, courseEnd, courseDays);
                            times.Add(currentTime);
                        }

                        return(times);
                    }
                }
            }
        }
コード例 #21
0
        public bool AddCourseSchedule()  //将课程导入日程
        {
            string        userStuID = EasOP.GetStuID((this.QQ).ToString());
            List <Course> courses   = EasOP.GetCourses(userStuID);

            foreach (Course course in courses)
            {
                List <List <Object> > temp = CourseTime.ParseClassTime(course);
                for (int i = 0; i < temp.Count; i++)
                {
                    DateTime dt = (DateTime)temp[i][0];
                    dt = dt.AddMinutes(-15);
                    string sc       = $"{course.LessonName},{course.Teacher},{course.Time}";
                    int    weekSpan = (int)temp[i][1];
                    if (!AddWeeklySchedule(dt, sc, weekSpan))
                    {
                        return(false);
                    }
                }
                #region 用循环添加日程
                //if (CourseTime.ParseClassTime(course).Count == 1)
                //{
                //  DateTime dt = (DateTime)CourseTime.ParseClassTime(course)[0][0];
                //  string st = "每周课程提醒";
                //  string sc = $"{course.LessonName},{course.Teacher},{course.Time}";
                //  int weekSpan = (int)CourseTime.ParseClassTime(course)[0][1];
                //  if (!AddWeeklySchedule(dt, st, sc, weekSpan))
                //      return false;
                //}
                //else if(CourseTime.ParseClassTime(course).Count == 2)
                //{
                //    DateTime dt = (DateTime)CourseTime.ParseClassTime(course)[0][0];
                //    string st = "每周课程提醒";
                //    string sc = $"{course.LessonName},{course.Teacher},{course.Time}";
                //    int weekSpan = (int)CourseTime.ParseClassTime(course)[0][1];
                //    dt = (DateTime)CourseTime.ParseClassTime(course)[1][0];
                //    weekSpan = (int)CourseTime.ParseClassTime(course)[1][1];
                //    if(!AddWeeklySchedule(dt, st, sc, weekSpan)||!AddWeeklySchedule(dt, st, sc, weekSpan))
                //        return false;
                //}
                #endregion
            }
            return(true);
        }
コード例 #22
0
 private bool IsCourseTimeColliding(CourseTime courseTime, List <CourseTime> usedTime)
 {
     if (courseTime == null)
     {
         return(false);
     }
     foreach (CourseTime used in usedTime)
     {
         if (courseTime.Day == used.Day && (courseTime.EvenWeek == used.EvenWeek || courseTime.OddWeek == used.OddWeek))
         {
             if (courseTime.CourseStart >= used.CourseStart && courseTime.CourseStart <= used.CourseEnd ||
                 courseTime.CourseEnd >= used.CourseStart && courseTime.CourseEnd <= used.CourseEnd)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
コード例 #23
0
        public ActionResult CourseTimeQuiry()
        {
            SchoolContext             db = new SchoolContext();
            List <CourseTimeQuiryDto> getCourseTimePerSemesterList = new List <CourseTimeQuiryDto>();
            var courseTimePerSemester = db.CourseTimePerSemester.OrderByDescending(x => x.ID).ToList();
            var startingSchoolYear    = courseTimePerSemester[0].StartingSchoolYear;
            var semester               = courseTimePerSemester[0].Semester;
            var signupEndDate          = courseTimePerSemester[0].SignupEndDate.ToString("yyyy/MM/dd HH:mm");
            var newSections            = db.SectionDepartment.Where(x => x.CourseSorts == CourseSorts.C).Select(c => new { Section = c.Section }).Distinct().ToList();
            var CourseTimePerSemester1 = db.CourseTimePerSemester.Where(x => x.StartingSchoolYear == startingSchoolYear && x.Semester == semester);


            foreach (var ns in newSections)
            {
                CourseTimeQuiryDto CourseTimeQuiryDto = new CourseTimeQuiryDto();
                List <CourseTime>  courseTimeList     = new List <CourseTime>();
                CourseTimeQuiryDto.SchoolSystem = ns.Section;

                foreach (var c in CourseTimePerSemester1)
                {
                    if (ns.Section == c.Section)
                    {
                        CourseTimeQuiryDto.CourseTimePerSemesterID = c.ID;
                        CourseTime courseTime = new CourseTime();
                        courseTime.CourseTimeString = (c.Grade > 3) ? c.Grade + "年級(含以上) " + c.SignupBeginDate.ToString("yyyy/MM/dd HH:mm") : c.Grade + "年級 " + c.SignupBeginDate.ToString("yyyy/MM/dd HH:mm");
                        courseTimeList.Add(courseTime);
                    }
                }
                CourseTimeQuiryDto.CourseTimeList = courseTimeList;

                getCourseTimePerSemesterList.Add(CourseTimeQuiryDto);
            }


            ViewBag.editSchoolYear = startingSchoolYear;
            ViewBag.semester       = (semester == Semester.F) ? "第一學期" : "第二學期";
            ViewBag.SignupEndDate  = signupEndDate;
            ViewBag.editSections   = getCourseTimePerSemesterList;


            return(View());
        }
コード例 #24
0
        private void courseTimes(int Id)
        {
            Course course = new Course()
            {
                Id = Id
            }.get();

            var CourseRef = Id;



            List <CourseTime> courseTimes = new CourseTime().getCourseTimeList(course);
            Store             str         = gridPanelCourseTime.GetStore();

            str.DataSource = courseTimes;
            str.DataBind();
            hdnUpdateCourseTime.SetValue(Id);

            winCourseTime.Show();
        }
コード例 #25
0
 private void Rec(List <CourseData> courseList, List <CourseDetails> prevTimetable, List <CourseTime> usedTime, ref List <Timetable> returnList)
 {
     if (courseList.Count() > 0)
     {
         CourseData courseData = courseList[courseList.Count() - 1];
         courseList.RemoveAt(courseList.Count() - 1);
         foreach (CourseDetails group in courseData.GroupList)
         {
             string[] splittedStatus  = group.Status.Split("/");
             int      currentStudents = int.Parse(splittedStatus[0]);
             int      maxStudents     = int.Parse(splittedStatus[1]);
             if (returnList.Count() < ResultLimit)
             {
                 CourseTime courseTime = GetCourseTime(group);
                 if (!IsCourseTimeColliding(courseTime, usedTime) && currentStudents < maxStudents)
                 {
                     List <CourseTime> usedTimeCopy = usedTime.ToList();
                     if (courseTime != null && !(IgnoreLectures && group.Type == LECTURE_TYPE))
                     {
                         usedTimeCopy.Add(courseTime);
                     }
                     List <CourseDetails> currentTimetable = prevTimetable.ToList();
                     group.CourseName = courseData.CourseName;
                     currentTimetable.Add(group);
                     Rec(courseList.ToList(), currentTimetable, usedTimeCopy, ref returnList);
                 }
             }
         }
     }
     else
     {
         if (prevTimetable.Count > 0)
         {
             returnList.Add(new Timetable {
                 GroupList = prevTimetable
             });
         }
     }
 }
コード例 #26
0
        public List <Transcript.StudentCourseReport> GetDegreeReport(string studentIDCheck)
        {
            DegreeProgramDAL programDAL      = new DegreeProgramDAL();
            String           degreeProgram   = programDAL.GetDegreeProgramByStudentID(studentIDCheck);
            CourseCollection requiredCourses = programDAL.GetCoursesByDegreeProgram(degreeProgram);
            DegreeProgram    program         = new DegreeProgram(degreeProgram, requiredCourses);
            StudentDAL       studentDal      = new StudentDAL();
            Student          student         = studentDal.GetStudentByStudentID(studentIDCheck);
            CourseDAL        courseDal       = new CourseDAL();
            List <Course>    coursesTaken    = courseDal.GetCoursesByStudentID(studentIDCheck);
            Transcript       transcript      = new Transcript(program, student, coursesTaken);
            CourseTimeDAL    courseTimeDal   = new CourseTimeDAL();

            foreach (var course in transcript.Courses)
            {
                char?      grade = studentDal.GetGradeByCourseAndStudentID(course.CRN, studentIDCheck);
                CourseTime time  = courseTimeDal.GetCourseTimeByCRN(course.CRN);
                Transcript.StudentCourseReport courseReport = new Transcript.StudentCourseReport(course, program, student, grade, time);
                transcript.CourseReports.Add(courseReport);
            }
            return(transcript.CourseReports);
        }
コード例 #27
0
 public void Update(CourseTime courseTime)
 {
     _context.Update(courseTime);
 }
コード例 #28
0
 public void Delete(CourseTime courseTime)
 {
     _context.Remove(courseTime);
 }
コード例 #29
0
 public void Add(CourseTime courseTime)
 {
     _context.Add(courseTime);
 }
コード例 #30
0
ファイル: CourseContent.cs プロジェクト: HIT-ReFreSH/Schedule
        internal CourseContent(string courseName, DayOfWeek dayOfWeek, CourseTime courseTime, bool isLongCourse,
                               bool isLab, string weekExpression)
        {
            CourseName   = courseName;
            DayOfWeek    = dayOfWeek;
            CourseTime   = courseTime;
            IsLongCourse = isLongCourse;
            IsLab        = isLab;

            //Parse Week Expression
            weekExpression = ResourceProvider.Resource.RemoveCommaSpace(weekExpression);

            var currentTeacher  = "";
            var timeStack       = new Stack <string>();
            var timeTeacherMap  = new Dictionary <string, string>();
            var timeLocationMap = new Dictionary <string, string>();

            foreach (var match in ResourceProvider.Resource.ScheduleExpressionUnitRegex.Matches(weekExpression))
            {
                var unit = match?.ToString();
                if (unit == null)
                {
                    continue;
                }
                var unitType = ResourceProvider.Resource.LocationRegex.IsMatch(unit) ? ScheduleExpressionUnitType.Location :
                               ResourceProvider.Resource.TeacherNameRegex.IsMatch(unit) ? ScheduleExpressionUnitType.Teacher :
                               ResourceProvider.Resource.CourseTimeRegex.IsMatch(unit) ? ScheduleExpressionUnitType.Time :
                               ScheduleExpressionUnitType.Unknown;

                switch (unitType)
                {
                case ScheduleExpressionUnitType.Teacher:
                    currentTeacher = unit;
                    break;

                case ScheduleExpressionUnitType.Time:
                    timeTeacherMap.Add(unit, currentTeacher);
                    timeStack.Push(unit);
                    break;

                case ScheduleExpressionUnitType.Location:
                    while (timeStack.Count > 0)
                    {
                        timeLocationMap.Add(timeStack.Pop(), unit);
                    }
                    break;

                case ScheduleExpressionUnitType.Unknown:
                    throw new ArgumentException(weekExpression, nameof(weekExpression), null);

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            while (timeStack.Count > 0)
            {
                timeLocationMap.Add(timeStack.Pop(), "<地点待定>");
            }

            foreach (var time in timeTeacherMap.Keys)
            {
                foreach (var weekIndex in ResourceProvider.Resource.ToIntSequence(time))
                {
                    WeekInformation.Add(weekIndex, new()
                    {
                        Name     = CourseName,
                        Teacher  = timeTeacherMap[time],
                        Location = timeLocationMap[time]
                    });
                }
            }
        }