// Remove Course public static async Task Remove(CourseModel course, string year = null, string term = null) { var courselist = await GetCourseList(year, term); for (int i = 0; i < courselist.Count; i++) { if (courselist[i].id == course.id) { courselist.RemoveAt(i); } } SQLiteService.DeleteCourse(course.id); }
// Add Course public static async Task <bool> Add(CourseModel course, string year = null, string term = null) { var courselist = await GetCourseList(year, term); if (CanAdd(course, courselist)) { courselist.Add(course); SQLiteService.InsertCourse(course.id, course.name, course.classroom, course.period, course.day, course.sectionStart, course.sectionEnd, course.lessonIds); return(true); } else { Tools.ShowMsgAtFrame("有课程冲突"); return(false); } }
public static async Task <CourseModel> GetCourse(int day, int section, string year = null, string term = null, string week = null) { ObservableCollection <CourseModel> CourseList = ((App)App.Current).CourseList; CourseModel result = null; var resultList = new List <CourseModel>(); foreach (var item in CourseList) { if (item.day == day && (item.sectionStart <= section && section <= item.sectionEnd)) { resultList.Add(item); result = item; } } var isWeekValid = int.TryParse(week, out int _week); if (resultList.Count > 1 && isWeekValid) { foreach (var item in resultList) { string[] weeks; if (item.smartPeriod != null) { weeks = item.smartPeriod.Split(' '); } else { weeks = item.period.Split(' ', ','); } weeks = item.smartPeriod.Split(' '); if (Array.IndexOf(weeks, week) >= 0) { result = item; break; } } } return(result); }
/* * Field to add database operation * Begins * */ public static async Task <ObservableCollection <CourseModel> > GetCourseListFromDatabase(string year = null, string term = null) { var CourseList = new ObservableCollection <CourseModel>(); SQLiteConnection conn = SQLiteService.conn; string sql = @"SELECT Id,Name,ClassRoom,Period,Day,SectionStart,SectionEnd,LessonIds FROM Course;"; using (var statement = conn.Prepare(sql)) { while (SQLiteResult.ROW == statement.Step()) { var c = new CourseModel(statement[0].ToString(), statement[1].ToString(), statement[2].ToString(), statement[3].ToString(), (int)(long)statement[4], (int)(long)statement[5], (int)(long)statement[6], statement[7].ToString()); var tt = 1; CourseList.Add(new CourseModel(statement[0].ToString(), statement[1].ToString(), statement[2].ToString(), statement[3].ToString(), (int)(long)statement[4], (int)(long)statement[5], (int)(long)statement[6], statement[7].ToString())); } } return(CourseList); }
/* * Field to add database operation * Ends * */ public static bool CanAdd(CourseModel Course, ObservableCollection <CourseModel> CourseList) { return(true); /* var CourseDir = new Dictionary<int, List<int>>(); * bool can = true; * for (int i = 1; i < 8; i++) * { * CourseDir.Add(i, new List<int>()); * } * foreach (var item in CourseList) * { * if (item.sectionStart == item.sectionEnd) * { * CourseDir[item.day].Add(item.sectionStart); * } * else * { * for (int i = 0; i < item.sectionEnd - item.sectionStart; i++) * { * CourseDir[item.day].Add(item.sectionStart + i); * } * } * } * if (Course.sectionStart == Course.sectionEnd) * { * return !CourseDir[Course.day].Contains(Course.sectionStart); * } * else * { * for (int i = 0; i < Course.sectionEnd - Course.sectionStart; i++) * { * if (CourseDir[Course.day].Contains(Course.sectionStart + i)) * { * can = false; * } * } * return can; * } */ }
public static async Task <bool> UpdateCourse(CourseModel course, string year = null, string term = null) { SQLiteService.UpdateCourse(course.id, course.name, course.classroom, course.period, course.day, course.sectionStart, course.sectionEnd, course.lessonIds); return(true); }