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); }
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)); }
public bool AddTimes(CourseTime courseTime) { _sDbContext.Add(courseTime); var time = _sDbContext.SaveChanges(); return(time > 0 ? true : false); }
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); } }
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); } }
/// <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); }
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); }
private void updateCourseTime(int Id, int courseRef, int courseTimeNo) { CourseTime = new CourseTime() { Id = Id, CourseRef = courseRef, CourseTimeNo = courseTimeNo }; winUpdateCourseTime.Show(); }
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; }
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; } }
/// <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) });
/// <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) });
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)); }
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); }
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(); }
/// <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); }
/// <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); }
/// <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(','); }
// 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); } } }
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); } } } }
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); }
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); }
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()); }
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(); }
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 }); } } }
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); }
public void Update(CourseTime courseTime) { _context.Update(courseTime); }
public void Delete(CourseTime courseTime) { _context.Remove(courseTime); }
public void Add(CourseTime courseTime) { _context.Add(courseTime); }
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] }); } } }