void createCommand() { Dialog.CreateOddDualWeek createWin = new Dialog.CreateOddDualWeek(); createWin.Closed += (s, arg) => { if (createWin.DialogResult.Value) { var last = this.Rules.LastOrDefault(); var index = last == null ? 0 : last.NO; var cp = CommonDataManager.GetCPCase(base.LocalID); var classes = createWin.SelectClasses?.ToList(); var odd = createWin.OddCourse; var dual = createWin.DualCourse; classes.ForEach(c => { var model = new UIOddDualWeek() { NO = ++index, ClassID = c.ID, ClassName = c.Name, OddCourseID = odd?.ID, DualCourseID = dual?.ID, }; var dualCourse = cp.Courses.FirstOrDefault(d => d.ID.Equals(model.DualCourseID)); var oddCourse = cp.Courses.FirstOrDefault(d => d.ID.Equals(model.OddCourseID)); model.OddCourse = oddCourse?.Name; model.DualCourse = dualCourse?.Name; this.Rules.Add(model); }); } }; createWin.ShowDialog(); }
void createCommand() { Dialog.CreateOddDualWeek createWin = new Dialog.CreateOddDualWeek(); createWin.Closed += (s, arg) => { if (createWin.DialogResult.Value) { var last = this.Rules.LastOrDefault(); var index = last == null ? 0 : last.NO; var cp = CommonDataManager.GetCPCase(base.LocalID); var classes = createWin.SelectClasses?.ToList(); var odd = createWin.OddCourse; var dual = createWin.DualCourse; classes.ForEach(c => { var model = new UIOddDualWeek() { NO = ++index, ClassID = c.ID, ClassName = c.Name, OddCourseID = odd?.ID, DualCourseID = dual?.ID, }; var dualCourse = cp.Courses.FirstOrDefault(d => d.ID.Equals(model.DualCourseID)); var oddCourse = cp.Courses.FirstOrDefault(d => d.ID.Equals(model.OddCourseID)); model.OddCourse = oddCourse?.Name; model.DualCourse = dualCourse?.Name; var classRules = this.Rules.Where(r => r.ClassName.Equals(model.ClassName)); if (classRules == null) { this.Rules.Add(model); } else { var hasOdd = classRules.Any(r => { var isDual = false; var isOdd = false; if (r.DualCourse != null) { isDual = r.DualCourse.Equals(model.OddCourse); } else if (r.OddCourse != null) { isOdd = r.OddCourse.Equals(model.OddCourse); } if (isOdd || isDual) { return(true); } else { return(false); } }); var hasDual = classRules.Any(r => { var isDual = false; var isOdd = false; if (r.DualCourse != null) { isDual = r.DualCourse.Equals(model.DualCourse); } else if (r.OddCourse != null) { isOdd = r.OddCourse.Equals(model.DualCourse); } if (isOdd || isDual) { return(true); } else { return(false); } }); if (hasOdd || hasDual) { this.ShowDialog("提示信息", "同班级单周或双周只能有一条规则!", CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Warning); return; } else { this.Rules.Add(model); } } }); } }; createWin.ShowDialog(); }