Пример #1
0
        /// <summary>
        /// 加载课程信息
        /// </summary>
        /// <returns></returns>
        private async Task LoadCourses()
        {
            Courses.Clear();
            JObject json = await NetHelper.Send(new { Command = Admin_Courses });

            if (!json[OK].Value <bool>())
            {
                TaskDialog.ShowError("加载课程列表失败:" + json[Message].Value <string>());
                return;
            }
            JArray array = json[Data] as JArray;

            foreach (dynamic item in array)
            {
                UICourse course = new UICourse();
                course.Id        = item.Id;
                course.Name      = item.Name;
                course.Teacher   = item.Teacher;
                course.TeacherId = item.TeacherId;
                course.Year      = item.Year;
                course.Term      = item.Term;

                Courses.Add(course);
            }
        }
        private void C_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            UICourse course = sender as UICourse;

            if (e.PropertyName.Equals(nameof(course.IsChecked)))
            {
                // 1.先清除
                var classes = this.Classes.Where(c => c.CourseID == course.ID)?.ToList();
                if (classes != null)
                {
                    classes.ForEach(c =>
                    {
                        this.Classes.Remove(c);
                    });
                }

                // 2.再添加
                if (course.IsChecked)
                {
                    var cl = CommonDataManager.GetCLCase(base.LocalID);

                    var results = cl.GetClasses(course.ID);
                    results?.ForEach(r =>
                    {
                        r.IsChecked = true;
                        this.Classes.Add(r);
                    });
                }
            }
        }
Пример #3
0
        /// <summary>
        /// 获取课程
        /// </summary>
        /// <param name="cp"></param>
        /// <param name="teacherIDs"></param>
        /// <returns></returns>
        public static List <UICourse> GetCourses(this CPCase cp, string teacherID)
        {
            List <UICourse> courses = new List <UICourse>();

            var classHours = (from ch in cp.ClassHours where ch.TeacherIDs.Contains(teacherID) select ch);
            var groups     = classHours?.GroupBy(g => g.CourseID);

            if (groups != null)
            {
                foreach (var g in groups)
                {
                    var course = cp.Courses.FirstOrDefault(ch => ch.ID.Equals(g.Key));
                    if (course != null)
                    {
                        UICourse ui = new UICourse()
                        {
                            ID   = course.ID,
                            Name = course.Name
                        };
                        courses.Add(ui);
                    }
                }
            }

            return(courses);
        }
Пример #4
0
        void setColorCommand(object obj)
        {
            UICourse model = obj as UICourse;
            var      local = CommonDataManager.GetLocalCase(base.LocalID);

            ColorDialog colorDialog = new ColorDialog();

            if (colorDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                SolidBrush      sb = new SolidBrush(colorDialog.Color);
                SolidColorBrush solidColorBrush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(sb.Color.A, sb.Color.R, sb.Color.G, sb.Color.B));

                var colorString = solidColorBrush.ToString();

                model.ColorString = colorString;

                var has = local.CourseColors.ContainsKey(model.ID);
                if (!has)
                {
                    local.CourseColors.Add(model.ID, colorString);
                }
                else
                {
                    local.CourseColors[model.ID] = colorString;
                }

                // 保存方案
                local.Serialize();
            }
        }
Пример #5
0
        public void Initilize()
        {
            this.Courses.Clear();

            var cl    = base.GetClCase(base.LocalID);
            var local = CommonDataManager.GetLocalCase(base.LocalID);

            cl.Courses.ForEach(c =>
            {
                UICourse course = new UICourse()
                {
                    ID     = c.ID,
                    Name   = c.Name,
                    Levels = new ObservableCollection <UILevel>()
                };

                var has = local.CourseColors.ContainsKey(c.ID);
                if (has)
                {
                    course.ColorString = local.CourseColors[c.ID];
                }

                if (c.Levels != null)
                {
                    // 查找空层
                    if (c.Levels.Any(l => l.ID.Equals("0")))
                    {
                        // 空层
                        course.DefaultLevel = new UILevel()
                        {
                            CourseID = course.ID,
                            ID       = "0",
                            Name     = string.Empty,
                            Lessons  = 5
                        };
                    }
                    else
                    {
                        var levels = c.Levels.Select(l =>
                        {
                            return(new UILevel()
                            {
                                CourseID = c.ID,
                                ID = l.ID,
                                Name = l.Name,
                                Lessons = l.Lessons,
                            });
                        });

                        if (levels != null)
                        {
                            course.Levels = new ObservableCollection <UILevel>(levels);
                        }
                    }
                }

                this.Courses.Add(course);
            });
        }
 void Receive(UICourse course)
 {
     foreach (var c in this.Classes)
     {
         var removeItem = c.Courses?.FirstOrDefault(cc => cc.CourseID.Equals(course.ID));
         if (removeItem != null)
         {
             c.Courses.Remove(removeItem);
         }
     }
 }
Пример #7
0
        void createLevelCommand(object obj)
        {
            UICourse course = obj as UICourse;

            CreateLevelWindow levelWin = new CreateLevelWindow();

            levelWin.Closed += (s, arg) =>
            {
                if (levelWin.DialogResult.Value)
                {
                    var has = course.Levels.Any(c =>
                    {
                        return(levelWin.Levels.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;
                        }
                    }

                    if (course.DefaultLevel != null)
                    {
                        // 删除默认层
                        course.DefaultLevel = null;
                    }

                    foreach (var l in levelWin.Levels)
                    {
                        var levelID = course.Levels.Count == 0 ? 0 : course.Levels.Max(m => Convert.ToInt64(m.ID));

                        var theSame = course.Levels.Any(ll => ll.Name.Equals(l));
                        if (!theSame)
                        {
                            course.Levels.Add(new UILevel
                            {
                                ID       = (levelID + 1).ToString(),
                                CourseID = course.ID,
                                Name     = l,
                                Lessons  = 5
                            });
                        }
                    }
                }
            };
            levelWin.ShowDialog();
        }
Пример #8
0
        void deleteCommand(object obj)
        {
            var result = this.ShowDialog("提示信息", "确认删除?", CustomControl.Enums.DialogSettingType.OkAndCancel, CustomControl.Enums.DialogType.Warning);

            if (result == CustomControl.Enums.DialogResultType.OK)
            {
                var local = CommonDataManager.GetLocalCase(base.LocalID);

                UICourse uiCourse = obj as UICourse;
                this.Courses.Remove(uiCourse);

                _toDeleteCourses.Add(uiCourse);
                this.RaisePropertyChanged(() => ShowCreateLevel);
            }
        }
Пример #9
0
        void getTechers(UICourse course)
        {
            // 获取方案
            var cl = base.GetClCase(base.LocalID);

            // 获取教师
            var teachers = cl.GetTeachers(course.ID);

            // 1.1 当前教师数据源
            this._courseTeachers = teachers;
            // 1.2 师傅
            this.Masters = teachers;
            // 1.3 徒弟
            this.Apprentices = teachers;
        }
Пример #10
0
        void getTechers(UICourse course)
        {
            // 获取方案
            var cp = CommonDataManager.GetCPCase(base.LocalID);

            // 获取教师
            var teachers = cp.GetTeachers(course.ID);

            // 1.1 当前教师数据源
            this._courseTeachers = teachers;
            // 1.2 师傅
            this.Masters = teachers;
            // 1.3 徒弟
            this.Apprentices = teachers;
        }
Пример #11
0
        bool CourseContains(object contain)
        {
            UICourse course = contain as UICourse;

            if (string.IsNullOrEmpty(this.SearchCourse))
            {
                return(true);
            }

            if (course.Name.IndexOf(this.SearchCourse) != -1)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #12
0
        public void Initilize()
        {
            var cp    = CommonDataManager.GetCPCase(base.LocalID);
            var local = CommonDataManager.GetLocalCase(base.LocalID);

            if (cp != null)
            {
                _cpcase = cp;

                if (cp.Teachers != null)
                {
                    List <UICourse> courses = new List <UICourse>();
                    cp.Courses.ForEach(t =>
                    {
                        UICourse course = new UICourse()
                        {
                            ID   = t.ID,
                            Name = t.Name,
                        };

                        var has = local.CourseColors.ContainsKey(t.ID);
                        if (has)
                        {
                            course.ColorString = local.CourseColors[t.ID];
                        }

                        courses.Add(course);
                    });
                    this.Courses = new ObservableCollection <UICourse>(courses);

                    _courseCollectionView        = (ListCollectionView)CollectionViewSource.GetDefaultView(this.Courses);
                    _courseCollectionView.Filter = CourseContains;
                }
            }
            else
            {
                _cpcase = new CPCase();
            }
        }
Пример #13
0
        private void Oc_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            UICourse course = sender as UICourse;

            if (e.PropertyName.Equals(nameof(course.IsChecked)))
            {
                if (course.IsChecked)
                {
                    // 注册事件
                    this.DualCourses.ForEach(dc =>
                    {
                        dc.PropertyChanged -= Dc_PropertyChanged;
                    });

                    var selectDual = this.DualCourses.FirstOrDefault(f => f.IsChecked);

                    this.DualCourses = _sourceCourses.Where(sc => sc.Lessons == course.Lessons && !sc.ID.Equals(course.ID))?.Select(t => t.GetInstance())?.ToList();

                    // 注册事件
                    this.DualCourses.ForEach(dc =>
                    {
                        dc.PropertyChanged += Dc_PropertyChanged;
                    });

                    if (selectDual != null)
                    {
                        var find = this.DualCourses.FirstOrDefault(oc => oc.ID.Equals(selectDual.ID));
                        if (find != null)
                        {
                            find.PropertyChanged -= Dc_PropertyChanged;
                            find.IsChecked        = true;
                            find.PropertyChanged += Dc_PropertyChanged;
                        }
                    }
                }
            }
        }
Пример #14
0
        void changeCourse(UICourse course)
        {
            var cp = CommonDataManager.GetCPCase(base.LocalID);

            this.Classes = cp.GetClasses(course.ID);
        }
Пример #15
0
 void lessonChanged(UICourse course)
 {
     course.IsChecked = true;
 }
Пример #16
0
        void createCommand()
        {
            CreateCourseWindow window = new CreateCourseWindow();

            window.Closed += (s, arg) =>
            {
                if (window.DialogResult.Value)
                {
                    var has = this.Courses.Any(c =>
                    {
                        return(window.Courses.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;
                        }
                    }

                    var local = CommonDataManager.GetLocalCase(base.LocalID);
                    window.Courses.ForEach(c =>
                    {
                        var any = this.Courses.Any(cc => cc.Name.Equals(c));
                        if (!any)
                        {
                            var courseID = this.Courses.Count == 0 ? 0 : this.Courses.Max(cc => Convert.ToInt64(cc.ID));

                            var course = new UICourse
                            {
                                ID           = (courseID + 1).ToString(),
                                Name         = c,
                                DefaultLevel = new UILevel()
                                {
                                    ID      = "0",
                                    Name    = string.Empty,
                                    Lessons = 5
                                },
                                ColorString = "#000000"
                            };

                            this.Courses.Add(course);

                            var hasColor = local.CourseColors.ContainsKey(course.ID);
                            if (!hasColor)
                            {
                                local.CourseColors.Add(course.ID, "#000000");
                            }
                            else
                            {
                                local.CourseColors[course.ID] = "#000000";
                            }
                        }
                    });
                    this.RaisePropertyChanged(() => ShowCreateLevel);
                }
            };
            window.ShowDialog();
        }