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