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();
        }
예제 #2
0
        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();
        }
        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();
        }
예제 #4
0
        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;
        }
예제 #5
0
        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());
            }
        }