void getBase(OperatorEnum opratorEnum, MixedAlgoRuleEnum timeRule) { base.OpratorEnum = opratorEnum; this._timeRule = timeRule; this.TitleString = $"{ opratorEnum.GetLocalDescription()}-{timeRule.GetLocalDescription()}"; this.RaisePropertyChanged(() => ShowRead); this.RaisePropertyChanged(() => ShowEdit); var cl = base.GetClCase(base.LocalID); var results = new List <UITwoStatusWeek>(); var groups = cl.Positions.GroupBy(p => p.DayPeriod.Period); if (groups != null) { foreach (var g in groups) { var first = g.First(); UITwoStatusWeek week = new UITwoStatusWeek() { Period = first.DayPeriod, PositionType = first.Position, }; week.SetStatus(true); results.Add(week); } } this.Periods = results; this.Search(); }
public ClassHoursTimesValue(MixedAlgoRuleEnum ruleEnum) : this() { if (ruleEnum == MixedAlgoRuleEnum.ClassHoursMaxConcurrencyInSelectedTime) { dc_MaxConcurrency.Visibility = Visibility.Visible; } else if (ruleEnum == MixedAlgoRuleEnum.ClassHoursOccupyMaxTimeFromSelection) { dc_Occupy.Visibility = Visibility.Visible; } (this.DataContext as ClassHoursTimesValueModel).BindData(ruleEnum); }
void getBase(OperatorEnum opratorEnum, MixedAlgoRuleEnum timeRule) { base.OpratorEnum = opratorEnum; this._timeRule = timeRule; this.TitleString = $"{ opratorEnum.GetLocalDescription()}-{timeRule.GetLocalDescription()}"; this.RaisePropertyChanged(() => ShowRead); this.RaisePropertyChanged(() => ShowEdit); var cl = base.GetClCase(base.LocalID); this.Sources = cl.GetClassHours(cl.ClassHours?.Select(ch => ch.ID)?.ToArray()); this.Search(); }
public void BindData(MixedAlgoRuleEnum ruleEnum) { this.SetCurrentRuleEnum(ruleEnum); var rule = base.GetCLAlgoRule(base.LocalID); if (rule == null) { return; } var cl = base.GetClCase(base.LocalID); int no = 0; if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.MinDaysBetweenClassHours) { rule.MinDaysBetweenClassHours.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.UID = t.UID; ui.NO = ++no; ui.IsActive = t.Active; ui.Weight = t.Weight; ui.MinDays = t.MinDays; ui.ClassHours = cl.GetClassHours(t.ID); ui.MaxAndMinDayString = $" 最小天数:{t.MinDays}"; this.Rules.Add(ui); }); this.ShowMaxDay = false; } else if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.MaxDaysBetweenClassHours) { rule.MaxDaysBetweenClassHours?.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.UID = t.UID; ui.NO = ++no; ui.IsActive = t.Active; ui.Weight = t.Weight; ui.MaxDays = t.MaxDays; ui.ClassHours = cl.GetClassHours(t.ID); ui.MaxAndMinDayString = $" 最大天数:{t.MaxDays}"; this.Rules.Add(ui); }); this.ShowMinDay = false; } }
/// <summary> /// 当前显示界面:规则或高级 /// </summary> public void SetCurrentRuleEnum(MixedAlgoRuleEnum value) { currentRuleEnum = value; this.Comments = CommonDataManager.GetMixedAlgoComments(value); if (currentRuleEnum == MixedAlgoRuleEnum.MinDaysBetweenClassHours) { this.ShowMaxDay = false; } else if (currentRuleEnum == MixedAlgoRuleEnum.MaxDaysBetweenClassHours) { this.ShowMinDay = false; } }
public void BindData(MixedAlgoRuleEnum ruleEnum) { this.SetCurrentRuleEnum(ruleEnum); var rule = base.GetCLAlgoRule(base.LocalID); var cl = base.GetClCase(base.LocalID); int no = 0; if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.ClassHoursSameStarting) { rule.ClassHoursSameStartingDays.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.NO = ++no; ui.IsActive = t.Active; ui.Weight = t.Weight; ui.ClassHours = cl.GetClassHours(t.ID); this.Rules.Add(ui); }); } else if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.ClassHoursSameStartingHour) { rule.ClassHoursSameStartingHours?.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.NO = ++no; ui.IsActive = t.Active; ui.Weight = t.Weight; ui.ClassHours = cl.GetClassHours(t.ID); this.Rules.Add(ui); }); } else if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.ClassHoursSameStartingTime) { rule.ClassHoursSameStartingTimes?.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.NO = ++no; ui.IsActive = t.Active; ui.Weight = t.Weight; ui.ClassHours = cl.GetClassHours(t.ID); this.Rules.Add(ui); }); } }
public void BindData(MixedAlgoRuleEnum ruleEnum) { this.SetCurrentRuleEnum(ruleEnum); var rule = base.GetCLAlgoRule(base.LocalID); var cl = base.GetClCase(base.LocalID); int no = 0; if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.ClassHoursRequiredStartingTimes) { rule.ClassHoursRequiredStartingTimes.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.NO = ++no; ui.UID = t.UID; ui.IsActive = t.Active; ui.Weight = t.Weight; ui.ClassID = t.ClassID; ui.CourseID = t.CourseID; ui.TeacherID = t.TeacherID; ui.TagID = t.TagID; ui.Periods = t.Times; this.Rules.Add(ui); }); } else if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.ClassHoursRequiredTimes) { rule.ClassHoursRequiredTimes?.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.NO = ++no; ui.UID = t.UID; ui.IsActive = t.Active; ui.Weight = t.Weight; ui.ClassID = t.ClassID; ui.CourseID = t.CourseID; ui.TeacherID = t.TeacherID; ui.TagID = t.TagID; ui.Periods = t.Times; this.Rules.Add(ui); }); } }
public void BindData(MixedAlgoRuleEnum ruleEnum) { this.CurrentRuleEnum = ruleEnum; this.Comments = CommonDataManager.GetMixedAlgoComments(ruleEnum); var rule = base.GetCLAlgoRule(base.LocalID); var cl = base.GetClCase(base.LocalID); int no = 0; if (this.CurrentRuleEnum == MixedAlgoRuleEnum.TeacherMaxHoursDaily) { rule.TeacherMaxHoursDailys.ForEach(t => { var teacher = cl.Teachers.FirstOrDefault(f => f.ID.Equals(t.TeacherID)); UITeacherRule ui = new UITeacherRule(); ui.NO = ++no; ui.TeacherID = teacher?.ID; ui.Name = teacher?.Name; ui.Weight = t.Weight; ui.IsActive = t.Active; ui.Value = t.MaxHours; this.Rules.Add(ui); }); } else { rule.TeachersMaxHoursDailys?.ForEach(t => { UITeacherRule ui = new UITeacherRule(); ui.NO = ++no; ui.Name = "所有教师"; ui.Weight = t.Weight; ui.IsActive = t.Active; ui.Value = t.MaxHours; ui.TeacherID = string.Empty; this.Rules.Add(ui); }); } }
public void BindData(MixedAlgoRuleEnum ruleEnum) { this.SetCurrentRuleEnum(ruleEnum); var rule = base.GetCLAlgoRule(base.LocalID); var cl = base.GetClCase(base.LocalID); int no = 0; if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.TeacherMaxGapsPerDay) { rule.TeacherMaxGapsPerDays.ForEach(t => { var teacher = cl.Teachers.FirstOrDefault(f => f.ID.Equals(t.TeacherID)); UITeacherRule ui = new UITeacherRule(); ui.NO = ++no; ui.TeacherID = teacher?.ID; ui.Name = teacher?.Name; ui.IsActive = t.Active; ui.Value = t.MaxGaps; this.Rules.Add(ui); }); } else { rule.TeachersMaxGapsPerDays?.ForEach(t => { UITeacherRule ui = new UITeacherRule(); ui.NO = ++no; ui.Name = "所有教师"; ui.IsActive = t.Active; ui.Value = t.MaxGaps; ui.TeacherID = string.Empty; this.Rules.Add(ui); }); } }
void getBase(OperatorEnum opratorEnum, MixedAlgoRuleEnum timeRule) { base.OpratorEnum = opratorEnum; this._timeRule = timeRule; this.TitleString = $"{ opratorEnum.GetLocalDescription()}-{timeRule.GetLocalDescription()}"; this.RaisePropertyChanged(() => ShowRead); this.RaisePropertyChanged(() => ShowEdit); //this.MaxTips = $"(1-{CommonDataManager.Hours})"; if (timeRule == MixedAlgoRuleEnum.TeachersMaxGapsPerDay) { this.Teachers = new List <UITeacher>() { new UITeacher { ID = string.Empty, Name = "所有教师" } }; this.SelectTeacher = this.Teachers.First(); } else { var cl = base.GetClCase(base.LocalID); this.Teachers = cl.Teachers.Select(t => { return(new UITeacher() { ID = t.ID, Name = t.Name }); })?.ToList(); } this.SelectTeacher = this.Teachers.FirstOrDefault(); }
public void BindData(MixedAlgoRuleEnum ruleEnum) { this.SetCurrentRuleEnum(ruleEnum); var rule = base.GetCLAlgoRule(base.LocalID); var cl = base.GetClCase(base.LocalID); int no = 0; if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.ClassHoursMaxConcurrencyInSelectedTime) { rule.ClassHoursMaxConcurrencyInSelectedTimes?.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.NO = ++no; ui.UID = t.UID; ui.IsActive = t.Active; ui.ClassHours = cl.GetClassHours(t.ID); ui.MaxConcurrency = t.MaxConcurrencyNumber; ui.Periods = t.Times; this.Rules.Add(ui); }); } else if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.ClassHoursOccupyMaxTimeFromSelection) { rule.ClassHoursOccupyMaxTimeFromSelections?.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.NO = ++no; ui.UID = t.UID; ui.IsActive = t.Active; ui.ClassHours = cl.GetClassHours(t.ID); ui.MaxOccupy = t.MaxOccupyNumber; ui.Periods = t.Times; this.Rules.Add(ui); }); } }
public CreateMaxGapsPerDay(OperatorEnum operatorEnum, MixedAlgoRuleEnum ruleType, UITeacherRule rule) : this() { VM?.SetValue(operatorEnum, ruleType, rule); }
public MultipyClassHoursView(MixedAlgoRuleEnum ruleEnum) : this() { (this.DataContext as MultipyClassHoursViewModel).BindData(ruleEnum); }
public CreateMultipyClassHours(OperatorEnum operatorEnum, MixedAlgoRuleEnum ruleType, UIClassHourRule rule) : this() { VM?.SetValue(operatorEnum, ruleType, rule); }
public CreateSameStarting(OperatorEnum operatorEnum, MixedAlgoRuleEnum ruleType, UIClassHourRule rule) : this() { VM?.SetValue(operatorEnum, ruleType, rule); }
public string GetMixedAlgoComments(MixedAlgoRuleEnum algoEnum) { return(this.MixedAlgoComments[algoEnum]); }
/// <summary> /// 当前显示界面:规则或高级 /// </summary> public void SetCurrentRuleEnum(MixedAlgoRuleEnum value) { currentRuleEnum = value; this.Comments = CommonDataManager.GetMixedAlgoComments(value); }
public CreateMaxHoursDaily(OperatorEnum operatorEnum, MixedAlgoRuleEnum rule) : this() { VM?.SetValue(operatorEnum, rule); }
public CreateClassHoursTimesValue(OperatorEnum operatorEnum, MixedAlgoRuleEnum rule) : this() { VM?.SetValue(operatorEnum, rule); }
public HostView(MixedAlgoRuleEnum ruleEnum) : this() { this.Title = $"高级-{ruleEnum.GetLocalDescription()}"; if (ruleEnum == MixedAlgoRuleEnum.ClassHourRequiredStartingTime) { FillContainer(new RequiredStartingTimeView()); } else if (ruleEnum == MixedAlgoRuleEnum.ClassHourRequiredStartingTimes || ruleEnum == MixedAlgoRuleEnum.ClassHourRequiredTimes) { FillContainer(new ClassHourRequiredTimes(ruleEnum)); } else if (ruleEnum == MixedAlgoRuleEnum.ClassHoursNotOverlap) { FillContainer(new HoursNotOverlapView()); } else if (ruleEnum == MixedAlgoRuleEnum.ClassHoursMaxConcurrencyInSelectedTime || ruleEnum == MixedAlgoRuleEnum.ClassHoursOccupyMaxTimeFromSelection) { FillContainer(new ClassHoursTimesValue(ruleEnum)); } else if (ruleEnum == MixedAlgoRuleEnum.ClassHoursRequiredStartingTimes || ruleEnum == MixedAlgoRuleEnum.ClassHoursRequiredTimes) { FillContainer(new ClassHoursRequiredTimes(ruleEnum)); } else if (ruleEnum == MixedAlgoRuleEnum.ClassHoursSameStarting || ruleEnum == MixedAlgoRuleEnum.ClassHoursSameStartingHour || ruleEnum == MixedAlgoRuleEnum.ClassHoursSameStartingTime) { FillContainer(new HoursSameStartingView(ruleEnum)); } else if (ruleEnum == MixedAlgoRuleEnum.MaxDaysBetweenClassHours || ruleEnum == MixedAlgoRuleEnum.MinDaysBetweenClassHours) { FillContainer(new BetweenClassHoursView(ruleEnum)); } else if (ruleEnum == MixedAlgoRuleEnum.ThreeClassHoursGrouped || ruleEnum == MixedAlgoRuleEnum.TwoClassHoursContinuous || ruleEnum == MixedAlgoRuleEnum.TwoClassHoursGrouped || ruleEnum == MixedAlgoRuleEnum.TwoClassHoursOrdered) { FillContainer(new MultipyClassHoursView(ruleEnum)); } else if (ruleEnum == MixedAlgoRuleEnum.TeacherMaxDaysPerWeek || ruleEnum == MixedAlgoRuleEnum.TeachersMaxDaysPerWeek) { FillContainer(new Algo.Teacher.MaxDaysPerWeekView(ruleEnum)); } else if (ruleEnum == MixedAlgoRuleEnum.TeacherMaxGapsPerDay || ruleEnum == MixedAlgoRuleEnum.TeachersMaxGapsPerDay) { FillContainer(new Algo.Teacher.MaxGapsPerDayView(ruleEnum)); } else if (ruleEnum == MixedAlgoRuleEnum.TeacherMaxHoursDaily || ruleEnum == MixedAlgoRuleEnum.TeachersMaxHoursDaily) { FillContainer(new Algo.Teacher.MaxHoursDailyView(ruleEnum)); } else if (ruleEnum == MixedAlgoRuleEnum.TeacherNotAvailableTimes) { FillContainer(new NotAvailableTimesView()); } }
public void SetValue(OperatorEnum opratorEnum, MixedAlgoRuleEnum timeRule) { this.getBase(opratorEnum, timeRule); }
void getBase(OperatorEnum opratorEnum, MixedAlgoRuleEnum timeRule) { base.OpratorEnum = opratorEnum; this.TitleString = $"{ opratorEnum.GetLocalDescription()}-{timeRule.GetLocalDescription()}"; this.RaisePropertyChanged(() => ShowRead); this.RaisePropertyChanged(() => ShowEdit); var cl = base.GetClCase(base.LocalID); this.Teachers = cl.Teachers.Select(t => { return(new UITeacher() { ID = t.ID, Name = t.Name }); })?.ToList(); this.SelectTeacher = this.Teachers.FirstOrDefault(); var results = new List <UITwoStatusWeek>(); var groups = cl.Positions.GroupBy(p => p.DayPeriod.Period); if (groups != null) { foreach (var g in groups) { var first = g.First(); UITwoStatusWeek week = new UITwoStatusWeek() { Period = first.DayPeriod, PositionType = first.Position, }; week.SetStatus(true); if (first.Position != XYKernel.OS.Common.Enums.Position.AB && first.Position != XYKernel.OS.Common.Enums.Position.PB && first.Position != XYKernel.OS.Common.Enums.Position.Noon) { g.ToList().ForEach(gg => { if (gg.DayPeriod.Day == DayOfWeek.Monday) { week.Monday.IsChecked = gg.IsSelected; } else if (gg.DayPeriod.Day == DayOfWeek.Tuesday) { week.Tuesday.IsChecked = gg.IsSelected; } else if (gg.DayPeriod.Day == DayOfWeek.Wednesday) { week.Wednesday.IsChecked = gg.IsSelected; } else if (gg.DayPeriod.Day == DayOfWeek.Thursday) { week.Thursday.IsChecked = gg.IsSelected; } else if (gg.DayPeriod.Day == DayOfWeek.Friday) { week.Friday.IsChecked = gg.IsSelected; } else if (gg.DayPeriod.Day == DayOfWeek.Saturday) { week.Saturday.IsChecked = gg.IsSelected; } else if (gg.DayPeriod.Day == DayOfWeek.Sunday) { week.Sunday.IsChecked = gg.IsSelected; } }); } results.Add(week); } } this.Periods = results; }
public MaxHoursDailyView(MixedAlgoRuleEnum ruleEnum) : this() { (this.DataContext as MaxHoursDailyViewModel).BindData(ruleEnum); }
public void BindData(MixedAlgoRuleEnum ruleEnum) { this.SetCurrentRuleEnum(ruleEnum); var rule = base.GetCLAlgoRule(base.LocalID); var cl = base.GetClCase(base.LocalID); int no = 0; if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.ThreeClassHoursGrouped) { rule.ThreeClassHoursGrouped.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.NO = ++no; ui.FirstID = t.FirstID; ui.SecondID = t.SecondID; ui.ThirdID = t.ThirdID; ui.IsActive = t.Active; ui.Weight = t.Weight; var hours = new List <int>() { t.FirstID, t.SecondID, t.ThirdID }; ui.ClassHours = cl.GetClassHours(hours.ToArray()); this.Rules.Add(ui); }); } else if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.TwoClassHoursContinuous) { rule.TwoClassHoursContinuous?.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.NO = ++no; ui.FirstID = t.FirstID; ui.SecondID = t.SecondID; ui.IsActive = t.Active; ui.Weight = t.Weight; var hours = new List <int>() { t.FirstID, t.SecondID }; ui.ClassHours = cl.GetClassHours(hours.ToArray()); this.Rules.Add(ui); }); } else if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.TwoClassHoursGrouped) { rule.TwoClassHoursGrouped?.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.NO = ++no; ui.FirstID = t.FirstID; ui.SecondID = t.SecondID; ui.IsActive = t.Active; ui.Weight = t.Weight; var hours = new List <int>() { t.FirstID, t.SecondID }; ui.ClassHours = cl.GetClassHours(hours.ToArray()); this.Rules.Add(ui); }); } else if (this.GetCurrentRuleEnum() == MixedAlgoRuleEnum.TwoClassHoursOrdered) { rule.TwoClassHoursOrdered?.ForEach(t => { UIClassHourRule ui = new UIClassHourRule(); ui.NO = ++no; ui.FirstID = t.FirstID; ui.SecondID = t.SecondID; ui.IsActive = t.Active; ui.Weight = t.Weight; var hours = new List <int>() { t.FirstID, t.SecondID }; ui.ClassHours = cl.GetClassHours(hours.ToArray()); this.Rules.Add(ui); }); } }
public CreateClassHourRequiredTimes(OperatorEnum operatorEnum, MixedAlgoRuleEnum ruleType, UIClassHourRule rule) : this() { VM?.SetValue(operatorEnum, ruleType, rule); }
public HoursSameStartingView(MixedAlgoRuleEnum ruleEnum) : this() { (this.DataContext as HoursSameStartingViewModel).BindData(ruleEnum); }
public void SetValue(OperatorEnum opratorEnum, MixedAlgoRuleEnum timeRule, UITeacherRule rule) { this.getBase(opratorEnum, timeRule); this.bind(rule); }
public CreateMaxDaysPerWeek(OperatorEnum operatorEnum, MixedAlgoRuleEnum rule) : this() { VM?.SetValue(operatorEnum, rule); }
public ClassHourRequiredTimes(MixedAlgoRuleEnum ruleEnum) : this() { (this.DataContext as ClassHourRequiredTimesModel).BindData(ruleEnum); }
public MaxGapsPerDayView(MixedAlgoRuleEnum ruleEnum) : this() { (this.DataContext as MaxGapsPerDayViewModel).BindData(ruleEnum); }