void batchDeleteCommand() { var dialog = this.ShowDialog("提示信息", "确认删除?", CustomControl.Enums.DialogSettingType.OkAndCancel, CustomControl.Enums.DialogType.Warning); if (dialog == CustomControl.Enums.DialogResultType.OK) { // 验证是否确认删除? var toDeleteTeachers = this.Teachers.Where(t => t.IsChecked)?.ToList(); if (toDeleteTeachers != null) { foreach (var t in toDeleteTeachers) { // 更新UI this.Teachers.Remove(t); // 移除教师 _cpcase.Teachers.RemoveAll(teacher => teacher.ID.Equals(t.ID)); AdministrativeDataHelper.TeacherChanged(t, base.LocalID, CommonDataManager); // 移除教师 GalaSoft.MvvmLight.Messaging.Messenger.Default.Send <UITeacher>(t); } // 保存 _cpcase.Serialize(base.LocalID); } } }
void batchDeleteCommand() { var hasCheckedCourse = this.Courses.Any(c => c.IsChecked); if (!hasCheckedCourse) { this.ShowDialog("提示信息", "没有选中要删除的课程!", CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Warning); return; } var confirm = this.ShowDialog("提示信息", "确定删除选中课程?", CustomControl.Enums.DialogSettingType.OkAndCancel, CustomControl.Enums.DialogType.Warning); if (confirm == CustomControl.Enums.DialogResultType.OK) { // 验证是否确认删除? var toDeletes = this._toDeleteCourses.Count == 0 ? this.Courses.Where(t => t.IsChecked)?.ToList() : this._toDeleteCourses.Where(t => t.IsChecked); if (toDeletes != null) { var local = CommonDataManager.GetLocalCase(base.LocalID); foreach (var t in toDeletes) { // 更新UI this.Courses.Remove(t); _cpcase.Courses.RemoveAll(c => c.ID.Equals(t.ID)); _cpcase.Classes?.ForEach(c => { c.Settings?.RemoveAll(cs => cs.CourseID.Equals(t.ID)); }); // 移除颜色 local.CourseColors.Remove(t.ID); // 移除课程 GalaSoft.MvvmLight.Messaging.Messenger.Default.Send <UICourse>(t); AdministrativeDataHelper.CourseChanged(t, base.LocalID, CommonDataManager); } // 保存 _cpcase.Serialize(base.LocalID); local.Serialize(); } } }
void saveCommand() { var showConfirm = IsClearRules(); if (showConfirm) { StringBuilder information = new StringBuilder(); information.AppendLine("数据发生改变,保存后会清除课时相关规则,是否确认修改?"); var confirm = this.ShowDialog("提示信息", information.ToString(), CustomControl.Enums.DialogSettingType.OkAndCancel, CustomControl.Enums.DialogType.Warning); if (confirm != CustomControl.Enums.DialogResultType.OK) { return; } AdministrativeDataHelper.ClassHourChanged(base.LocalID, CommonDataManager); } var cp = CommonDataManager.GetCPCase(base.LocalID); // 删除班级 removeClasses.ForEach(rc => { cp.Classes.RemoveAll(dc => dc.ID.Equals(rc.ID)); }); removeClasses.Clear(); foreach (var c in this.Classes) { // 1.班级 var model = new XYKernel.OS.Common.Models.Administrative.ClassModel() { ID = c.ID, Name = c.Name, }; var sourceClass = cp.Classes.FirstOrDefault(cc => cc.ID.Equals(c.ID)); if (sourceClass != null) { model.Students = sourceClass.Students; cp.Classes.Remove(sourceClass); } // 2.课程 foreach (var cc in c.Courses) { var ccModel = new XYKernel.OS.Common.Models.Administrative.ClassCourseModel() { CourseID = cc.CourseID, Lessons = cc.Lessons, TeacherIDs = cc.Teachers.Select(s => s.ID)?.ToList(), }; model.Settings.Add(ccModel); } cp.Classes.Add(model); } #region 生成课时 var hours = (from c in this.Classes from cc in c.Courses from hour in cc.ClassHours select new { ClassID = c.ID, CourseID = cc.CourseID, Teachers = hour.Teachers?.Select(t => t.ID)?.ToList() })?.ToList(); cp.ClassHours.Clear(); int no = 0; hours.ForEach(h => { cp.ClassHours.Add(new XYKernel.OS.Common.Models.Administrative.ClassHourModel { ID = ++no, ClassID = h.ClassID, CourseID = h.CourseID, TeacherIDs = h.Teachers }); }); #endregion // 3.保存 cp.Serialize(base.LocalID); this.ShowDialog("提示信息", "保存成功!", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None); }