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();
        }
Esempio n. 2
0
        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();
        }