void uniformTeacherCommand() { var cp = CommonDataManager.GetCPCase(base.LocalID); List <UIClass> newClasses = this.Classes.Select(c => { UIClass newClass = new UIClass() { ID = c.ID, Name = c.Name, Course = c.Course, CourseID = c.CourseID, HasOperation = c.HasOperation, IsChecked = c.IsChecked, }; var courses = c.Courses?.Select(cc => { return(new UIClassCourse() { Course = cc.Course, CourseID = cc.CourseID, ClassID = cc.ClassID, ClassName = cc.ClassName, Teachers = cc.Teachers.Select(t => { return new TeacherModel() { ID = t.ID, Name = t.Name }; })?.ToList() }); })?.ToList(); newClass.Courses = new ObservableCollection <UIClassCourse>(courses); return(newClass); })?.ToList(); BatchTeacherWindow window = new BatchTeacherWindow(newClasses); window.Closed += (s, arg) => { if (window.DialogResult.Value) { window.Classes.ForEach(c => { var firstClass = this.Classes.FirstOrDefault(sc => sc.ID.Equals(c.ID)); if (firstClass != null) { var newList = (from sc in firstClass.Courses from tc in c.Courses where tc.CourseID.Equals(sc.CourseID) select new { sc, tc }); if (newList != null) { foreach (var l in newList) { l.sc.Teachers = l.tc.Teachers; l.sc.RaiseChanged(); this.createClassHours(l.sc); } } } }); } }; window.ShowDialog(); //ChooseTeacherWindow window = new ChooseTeacherWindow(new List<UITeacher>(), allTeachers); //window.Closed += (s, arg) => //{ // if (window.DialogResult.Value) // { // var selectedTeachers = window.Teachers.Select(st => // { // return new XYKernel.OS.Common.Models.Administrative.TeacherModel() // { // ID = st.ID, // Name = st.Name // }; // })?.ToList(); // foreach (var cc in this.Classes) // { // foreach (var ccc in cc.Courses) // { // ccc.Teachers = selectedTeachers; // ccc.RaiseChanged(); // this.createClassHours(ccc); // } // } // } //}; //window.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(); }