void createClassCommand(object obj) { UICourseLevel model = obj as UICourseLevel; Mixed.Dialog.CreateClassWindow win = new Mixed.Dialog.CreateClassWindow(); win.Closed += (s, arg) => { if (win.DialogResult.Value) { var has = model.Classes.Any(c => { return(win.Classes.Any(cc => cc.Equals(c.Name))); }); if (has) { var result = this.ShowDialog("提示信息", "存在相同班级,是否继续添加", CustomControl.Enums.DialogSettingType.OkAndCancel, CustomControl.Enums.DialogType.Warning); if (result != CustomControl.Enums.DialogResultType.OK) { return; } } foreach (var c in win.Classes) { var courseLevels = (from l in this.CourseLevels from cl in l.Classes select cl)?.ToList(); var classID = courseLevels.Count == 0 ? 0 : courseLevels.Max(cc => Convert.ToInt64(cc.ID)); UIClass uiClass = new UIClass() { ID = (classID + 1).ToString(), CourseID = model.CourseID, Name = c, Capacity = win.Capacity, LevelID = model.LevelID }; model.Classes.Add(uiClass); model.RaiseChanged(); } this.RaisePropertyChanged(() => ShowUniform); } }; win.ShowDialog(); }
void uniformCapacityCommand(object obj) { // 班级 UICourseLevel courseLevel = obj as UICourseLevel; SetCapacityWindow chooseClassHourWindow = new SetCapacityWindow(); chooseClassHourWindow.Closed += (s, arg) => { if (chooseClassHourWindow.DialogResult.Value) { foreach (var c in courseLevel.Classes) { c.Capacity = chooseClassHourWindow.Capacity; } } }; chooseClassHourWindow.ShowDialog(); }
void uniformTeacherCommand() { #region 原始 var values = this.CourseLevels.Select(s => { UICourseLevel courseLevel = new UICourseLevel() { Course = s.Course, CourseID = s.CourseID, IsChecked = s.IsChecked, Lessons = s.Lessons, Level = s.Level, LevelID = s.LevelID, SelectClasses = s.SelectClasses, }; var classes = s.Classes.Select(sc => { return(new UIClass() { Capacity = sc.Capacity, Course = sc.Course, CourseID = sc.CourseID, Display = sc.Display, HasOperation = sc.HasOperation, ID = sc.ID, IsChecked = sc.IsChecked, Level = sc.Level, LevelID = sc.LevelID, Name = sc.LevelName, NO = sc.NO, TeacherIDs = sc.TeacherIDs.ToList() }); }); courseLevel.Classes = new ObservableCollection <UIClass>(classes); courseLevel.SelectClasses = courseLevel.Classes.Count; return(courseLevel); })?.ToList(); #endregion #region 绑定 var binds = this.CourseLevels.Select(s => { UICourseLevel courseLevel = new UICourseLevel() { Course = s.Course, CourseID = s.CourseID, IsChecked = s.IsChecked, Lessons = s.Lessons, Level = s.Level, LevelID = s.LevelID, SelectClasses = s.SelectClasses, }; var classes = s.Classes.Select(sc => { return(new UIClass() { Capacity = sc.Capacity, Course = sc.Course, CourseID = sc.CourseID, Display = sc.Display, HasOperation = sc.HasOperation, ID = sc.ID, IsChecked = sc.IsChecked, Level = sc.Level, LevelID = sc.LevelID, Name = sc.LevelName, NO = sc.NO, TeacherIDs = sc.TeacherIDs.ToList() }); }); courseLevel.Classes = new ObservableCollection <UIClass>(classes); courseLevel.SelectClasses = courseLevel.Classes.Count; return(courseLevel); })?.ToList(); #endregion BatchTeacherWindow window = new BatchTeacherWindow(values, binds); window.Closed += (s, arg) => { if (window.DialogResult.Value) { var cl = CommonDataManager.GetCLCase(base.LocalID); var results = window.CourseLevels; // 绑定结果 results.ForEach(r => { var courseLevel = this.CourseLevels.FirstOrDefault(c => c.CourseID.Equals(r.CourseID) && c.LevelID.Equals(r.LevelID)); if (courseLevel != null) { foreach (var c in r.Classes) { var firstClass = courseLevel.Classes.FirstOrDefault(cc => cc.ID.Equals(c.ID)); firstClass.TeacherString = cl.GetTeachersByIds(c.TeacherIDs)?.Select(t => t.Name)?.Parse(); firstClass.TeacherIDs = c.TeacherIDs; } } }); } }; window.ShowDialog(); //var clModel = base.GetClCase(base.LocalID); //var allTeachers = clModel.Teachers.Select(s => //{ // return new Models.Base.UITeacher() // { // ID = s.ID, // Name = s.Name // }; //})?.ToList(); //Arranging.Dialog.ChooseTeacherWindow window = new Arranging.Dialog.ChooseTeacherWindow(new List<Models.Base.UITeacher>(), allTeachers); //window.Closed += (s, arg) => //{ // if (window.DialogResult.Value) // { // foreach (var cl in this.CourseLevels) // { // foreach (var cc in cl.Classes) // { // // 清空教师 // cc.TeacherIDs.Clear(); // if (window.Teachers.Count > 0) // { // // 选择名称 // var selectedNames = window.Teachers.Select(st => // { // return st.Name; // }); // cc.TeacherString = selectedNames?.Parse(); // // 选择ID // var selectedIDs = window.Teachers.Select(st => // { // return st.ID; // }); // cc.TeacherIDs = selectedIDs?.ToList(); // } // } // } // } //}; //window.ShowDialog(); }
public void Initilize() { var cl = base.GetClCase(base.LocalID); Task.Run(() => { this.ShowLoading = true; GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() => { this.CourseLevels.Clear(); }); // 3.遍历课程 cl.Courses.ForEach(c => { c.Levels.ForEach(l => { var classCount = cl.Classes.Count(cc => cc.CourseID.Equals(c.ID) && cc.LevelID.Equals(l.ID)); var classHours = cl.GetClassHoursByCouresAndLevel(c.ID, l.ID); var classHourCount = classCount == 0 ? 0 : classHours.Count; UICourseLevel courseLevel = new UICourseLevel() { CourseID = c.ID, Course = c.Name, LevelID = l.ID, Level = l.Name, Lessons = classHourCount == 0 ? l.Lessons : classHourCount / classCount, }; var filter = cl.Classes.Where(cc => cc.CourseID.Equals(c.ID) && cc.LevelID.Equals(l.ID))?.Select(cc => { var uiClass = new UIClass() { ID = cc.ID, LevelID = cc.LevelID, Name = cc.Name, Capacity = cc.Capacity, CourseID = cc.CourseID, StudentIDs = cc.StudentIDs, TeacherIDs = cc.TeacherIDs }; uiClass.TeacherString = (from t in cl.Teachers from tt in cc.TeacherIDs where tt.Equals(t.ID) select t.Name)?.Parse(); return(uiClass); })?.ToList(); // 过滤 if (filter != null) { courseLevel.Classes = new ObservableCollection <UIClass>(filter); } courseLevel.StudentCount = cl.Students.Where(sc => sc.Preselections.Any(p => p.CourseID == c.ID && p.LevelID == l.ID)).Count(); // 向层中添加 GalaSoft.MvvmLight.Threading.DispatcherHelper.CheckBeginInvokeOnUI(() => { this.CourseLevels.Add(courseLevel); }); }); }); this.RaisePropertyChanged(() => ShowUniform); this.ShowLoading = false; }); }