Пример #1
0
        public void Initilize()
        {
            Messenger.Default.Register <HostView>(this, save);

            this.Comments = CommonDataManager.GetAdminAlgoComments(Models.Enums.AdministrativeAlgoRuleEnum.TeacherNotAvailableTimes);


            var rule = CommonDataManager.GetAminAlgoRule(base.LocalID);

            var cp = CommonDataManager.GetCPCase(base.LocalID);

            int no = 0;

            rule.TeacherNotAvailableTimes.ForEach(n =>
            {
                var newRule = new UITeacherRule()
                {
                    NO          = ++no,
                    ForbidTimes = n.Times,
                    IsActive    = n.Active,
                    Weight      = n.Weight,
                    UID         = n.UID,
                };

                var teacher       = cp.Teachers.FirstOrDefault(t => t.ID.Equals(n.TeacherID));
                newRule.TeacherID = teacher?.ID;
                newRule.Name      = teacher?.Name;

                this.Rules.Add(newRule);
            });
        }
        /// <summary>
        /// 刷新学生志愿UI
        /// </summary>
        public void RefreshStudentPreselections()
        {
            var cl = CommonDataManager.GetCLCase(base.LocalID);

            foreach (var student in Students)
            {
                IDictionary <string, object> dics = new ExpandoObject();
                cl.Courses.ForEach(c =>
                {
                    dics.Add(c.Name, string.Empty);
                });

                student.Preselections.ForEach(p =>
                {
                    // 列头显示情况。
                    var hasColumn = dics.ContainsKey(p.Course);
                    if (hasColumn)
                    {
                        if (!p.LevelID.Equals("0"))
                        {
                            dics[p.Course] = p.Level;
                        }
                        else
                        {
                            dics[p.Course] = p.Course;
                        }
                    }
                });

                student.ExpandoObject = dics;
            }
        }
        void getBase(OperatorEnum opratorEnum, AdministrativeAlgoRuleEnum timeRule)
        {
            this._timeRule   = timeRule;
            base.OpratorEnum = opratorEnum;
            this.TitleString = $"{ opratorEnum.GetLocalDescription()}-{timeRule.GetLocalDescription()}";
            this.RaisePropertyChanged(() => ShowRead);
            this.RaisePropertyChanged(() => ShowEdit);

            this.Days = new Dictionary <string, DayOfWeek>()
            {
                { "星期一", DayOfWeek.Monday },
                { "星期二", DayOfWeek.Tuesday },
                { "星期三", DayOfWeek.Wednesday },
                { "星期四", DayOfWeek.Thursday },
                { "星期五", DayOfWeek.Friday },
                { "星期六", DayOfWeek.Saturday },
                { "星期日", DayOfWeek.Sunday },
            };

            this.Day = "星期一";

            var cp = CommonDataManager.GetCPCase(base.LocalID);

            this.Periods = cp.GetDayPeriods();

            this.SelectPeriod = this.Periods.FirstOrDefault();

            Sources = cp.GetClassHours(cp.ClassHours?.Select(c => c.ID)?.ToArray());

            this.Search();
        }
        void save(HostView host)
        {
            if (this.SelectResult == null)
            {
                this.ShowDialog("提示信息", "选择结果为空!", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
                return;
            }

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

            local.LockedTaskID = this.SelectResult.TaskID;
            local.Serialize();

            var rule = CommonDataManager.GetAminRule(base.LocalID);

            if (_lockedRule.LockedTimeTable?.Count == 0)
            {
                rule.TimeTableLockedTimes = null;
            }
            else
            {
                rule.TimeTableLockedTimes = _lockedRule;
            }

            rule.Serialize(base.LocalID);

            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
        public void GetData(UIClass classModel)
        {
            var cp = CommonDataManager.GetCPCase(base.LocalID);

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

                List <UIStudent> students = new List <UIStudent>();
                _class = cp.Classes.FirstOrDefault(c => c.ID.Equals(classModel.ID));
                _class.Students?.ForEach(s =>
                {
                    UIStudent student = new UIStudent()
                    {
                        ID   = s.ID,
                        Name = s.Name
                    };
                    students.Add(student);
                });

                this.Students = new ObservableCollection <UIStudent>(students);

                _studentCollectionView        = (ListCollectionView)CollectionViewSource.GetDefaultView(this.Students);
                _studentCollectionView.Filter = StudentContains;
            }
        }
        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);
                    });
                }
            }
        }
        private DataTable CreateTableFrame()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("课节");
            dt.Columns.Add("星期一");
            dt.Columns.Add("星期二");
            dt.Columns.Add("星期三");
            dt.Columns.Add("星期四");
            dt.Columns.Add("星期五");
            dt.Columns.Add("星期六");
            dt.Columns.Add("星期日");

            var cp = CommonDataManager.GetCPCase(base.LocalID);

            var groups = cp.Positions.OrderBy(p => p.DayPeriod.Period).GroupBy(p => p.DayPeriod.PeriodName);

            foreach (var g in groups)
            {
                var newRow = dt.NewRow();
                newRow["课节"] = g.Key;
                dt.Rows.Add(newRow);
            }

            return(dt);
        }
        void statisticsCommand()
        {
            var cl = CommonDataManager.GetCLCase(base.LocalID);

            var preselections = (from c in cl.Courses
                                 from cc in c.Levels
                                 select new UIPreselection()
            {
                CourseID = c.ID,
                Course = c.Name,
                LevelID = cc.ID,
                Level = cc.Name,
            })?.ToList();

            List <string> combinations = new List <string>();

            foreach (var p in preselections)
            {
                int count = this.Students.Count(s => s.Preselections.Any(sp => sp.LevelID.Equals(p.LevelID) && sp.CourseID.Equals(p.CourseID)));
                if (count == 0)
                {
                    combinations.Add($"{p.Display} 无人");
                }
                else
                {
                    combinations.Add($"{p.Display} {count}人");
                }
            }

            StatisticStudentSelectionWindow window = new StatisticStudentSelectionWindow(combinations);

            window.ShowDialog();
        }
        public void BindData()
        {
            var rule = CommonDataManager.GetAminAlgoRule(base.LocalID);

            if (rule == null)
            {
                return;
            }

            var cp = CommonDataManager.GetCPCase(base.LocalID);

            int no = 0;

            rule.ClassHourRequiredStartingTime.ForEach(t =>
            {
                UIClassHourRule ui = new UIClassHourRule();
                ui.NO       = ++no;
                ui.IsActive = t.Active;
                ui.Weight   = t.Weight;
                ui.FirstID  = t.ID;
                ui.Period   = t.Period;
                ui.Day      = t.Period.Day;
                this.Rules.Add(ui);
            });
        }
Пример #10
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();
            }
        }
        public static StoreTransfer UpdateStoreTransfer(Dictionary <string, string> values)
        {
            string stNumber = values["STNumber"];
            string stId     = values["STID"];

            StoreTransfer ST = GetStoreTransfer(stNumber);

            ST.Id              = string.IsNullOrEmpty(stId) ? 0 : int.Parse(stId);
            ST.STDate          = values.ContainsKey("Date") ? DateTime.Parse(values["Date"]) : DateTime.Now;
            ST.Customer        = values.ContainsKey("Customer") ? CustomerManager.GetCustomerRef(values["Customer"]) : CustomerManager.GetDefaultRef();
            ST.Origin          = values.ContainsKey("Origin") ? CommonDataManager.GetOrigin(values["Origin"]) : CommonDataManager.GetDefaultRef();
            ST.Size            = values.ContainsKey("Size") ? CommonDataManager.GetOrigin(values["Size"]) : CommonDataManager.GetDefaultRef();
            ST.Vessel          = values.ContainsKey("Vessel") ? CommonDataManager.GetOrigin(values["Vessel"]) : CommonDataManager.GetDefaultRef();
            ST.Quantity        = values.ContainsKey("Quantity") ? decimal.Parse(values["Quantity"]) : 0;
            ST.FromStoreId     = values.ContainsKey("FromStore") ? GetStoreRef(values["FromStore"]) : GetDefaultRef();
            ST.ToStoreId       = values.ContainsKey("ToStore") ? GetStoreRef(values["ToStore"]) : GetDefaultRef();
            ST.VehicleNo       = values.ContainsKey("VehicleNo") ? values["VehicleNo"] : "";
            ST.BiltyNo         = values.ContainsKey("BiltyNo") ? values["BiltyNo"] : "";
            ST.BiltyDate       = values.ContainsKey("BiltyDate") ? DateTime.Parse(values["BiltyDate"]) : DateTime.MinValue;
            ST.RRInvoice       = values.ContainsKey("Invoice") ? values["Invoice"] : "";
            ST.CCMNumber       = values.ContainsKey("CCMNo") ? values["CCMNo"] : "";
            ST.Transporter     = values.ContainsKey("Transporter") ? CommonDataManager.GetTrader(values["Transporter"]) : CommonDataManager.GetDefaultRef();
            ST.StoreInDate     = DateTime.MinValue;
            ST.StoreInQuantity = 0;
            ST.Remarks         = values.ContainsKey("Remarks") ? values["Remarks"] : "";

            StoreDataManager.UpdateStoreTransfer(StoreMap.reMapStoreTransferData(ST));
            ResetCache();
            return(ST);
        }
        public void Initilize()
        {
            var cp = CommonDataManager.GetCPCase(base.LocalID);

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

                if (cp.Teachers != null)
                {
                    List <UITeacher> teachers = new List <UITeacher>();
                    cp.Teachers.ForEach(t =>
                    {
                        UITeacher teacher = new UITeacher()
                        {
                            ID   = t.ID,
                            Name = t.Name,
                        };
                        teachers.Add(teacher);
                    });
                    this.Teachers = new ObservableCollection <UITeacher>(teachers);

                    _teacherCollectionView        = (ListCollectionView)CollectionViewSource.GetDefaultView(this.Teachers);
                    _teacherCollectionView.Filter = TeacherContains;
                }
            }
            else
            {
                _cpcase = new CPCase();
            }
        }
        public void Initilize()
        {
            this.Comments = CommonDataManager.GetAdminRuleComments(AdministrativeRuleEnum.TeacherPriorityBalanceRule);

            Messenger.Default.Register <HostView>(this, save);
            var cp = CommonDataManager.GetCPCase(base.LocalID);

            // 绑定教师
            int no = 0;
            List <UITeacherPriorityBalance> rules = new List <UITeacherPriorityBalance>();

            cp.Teachers.ForEach(t =>
            {
                var classes = cp.GetClassesByTeacherID(t.ID);
                var courses = cp.GetCourses(t.ID);

                var groups = classes?.GroupBy(c => c.CourseID);
                if (groups != null)
                {
                    foreach (var g in groups)
                    {
                        var count = g.Count();
                        if (count > 1)
                        {
                            UITeacherPriorityBalance teacherRule = new UITeacherPriorityBalance()
                            {
                                CourseID  = g.Key,
                                TeacherID = t.ID,
                                Teacher   = t.Name,
                                Courses   = courses,
                            };
                            teacherRule.Classes = g.ToList();
                            teacherRule.NO      = ++no;
                            rules.Add(teacherRule);
                        }
                    }
                }
            });
            this.Rules = rules;

            // 绑定教师状态
            var rule = CommonDataManager.GetAminRule(base.LocalID);

            rule.ClassHourPriorityBalance.ForEach(h =>
            {
                // 1.绑定规则选中状态。
                var first = this.Rules.FirstOrDefault(r => r.TeacherID.Equals(h.TeacherID));
                if (first != null)
                {
                    first.Weight = (Models.Enums.WeightTypeEnum)h.Weight;

                    // 2.全部选中
                    var classes = (from c in h.ClassIDs from cl in first.Classes where c.Equals(cl.ID) select cl)?.ToList();
                    classes?.ForEach(c =>
                    {
                        c.IsChecked = true;
                    });
                }
            });
        }
Пример #14
0
        public void Initilize()
        {
            Messenger.Default.Register <HostView>(this, save);

            this.Comments = CommonDataManager.GetAdminRuleComments(AdministrativeRuleEnum.ClassUnion);


            var cp   = CommonDataManager.GetCPCase(base.LocalID);
            var rule = CommonDataManager.GetAminRule(base.LocalID);

            rule.ClassUnions.ForEach(u =>
            {
                UIClassUnion model = new UIClassUnion();
                var course         = cp.Courses.FirstOrDefault(c => c.ID.Equals(u.CourseID));
                if (course != null)
                {
                    model.CourseID   = course.ID;
                    model.CourseName = course.Name;
                }

                var classes = (from c in cp.Classes
                               from cc in u.ClassIDs
                               where c.ID.Equals(cc)
                               select new UIClass()
                {
                    ID = c.ID,
                    Name = c.Name,
                })?.ToList();
                model.Classes = classes;

                this.Rules.Add(model);
            });
        }
Пример #15
0
    protected bool HandleMissingData()
    {
        if (Manager == null)
        {
            Manager = InstanceFinder.DataManager;
            if (Manager == null)
            {
                ErrorDrawer.MissingAudioManager();
            }
        }

        if (Manager != null)
        {
            bool areAnyMissing = ErrorDrawer.IsDataMissing(Manager);

            if (areAnyMissing)
            {
                Manager.Load();
            }
            if (ErrorDrawer.IsDataMissing(Manager))
            {
                ErrorDrawer.MissingData(Manager);
                return(false);
            }
            else
            {
                return(true);
            }
        }
        else
        {
            return(false);
        }
    }
        void save(HostView host)
        {
            var rule = CommonDataManager.GetAminRule(base.LocalID);

            rule.ClassHourPriorityBalance.Clear();

            var hasOneSelect = this.Rules.Any(r => r.Classes.Count(c => c.IsChecked) == 1);

            if (hasOneSelect)
            {
                this.ShowDialog("提示信息", "至少选择两个班级齐头", CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Warning);
                return;
            }

            var filters = this.Rules.Where(r => r.Classes.Count(c => c.IsChecked) >= 2);

            if (filters?.Count() > 0)
            {
                foreach (var f in filters)
                {
                    var balanceRule = new XYKernel.OS.Common.Models.Administrative.Rule.TeacherPriorityBalanceRule()
                    {
                        CourseID  = f.CourseID,
                        TeacherID = f.TeacherID,
                        ClassIDs  = f.Classes.Where(c => c.IsChecked)?.Select(s => s.ID)?.ToList(),
                        Weight    = (int)f.Weight
                    };
                    rule.ClassHourPriorityBalance.Add(balanceRule);
                }
            }

            rule.Serialize(base.LocalID);
            this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
        public void Initilize()
        {
            Messenger.Default.Register <HostView>(this, save);

            this.Comments = CommonDataManager.GetMixedRuleComments(MixedRuleEnum.CourseLimit);

            List <UICourseLimit> courseLimits = new List <UICourseLimit>();

            var rule = base.GetClRule(base.LocalID);
            var cl   = base.GetClCase(base.LocalID);

            this.CourseLimits = cl.Courses.Select(c =>
            {
                return(new UICourseLimit()
                {
                    CourseID = c.ID,
                    Course = c.Name,
                });
            })?.ToList();

            rule.CourseLimits.ForEach(c =>
            {
                var course = this.CourseLimits.FirstOrDefault(cc => cc.CourseID.Equals(c.CourseID));
                if (course != null)
                {
                    course.IsChecked    = true;
                    course.Limit        = c.Limit;
                    course.PeriodLimits = c.PeriodLimits;
                    course.Weight       = (Models.Enums.WeightTypeEnum)c.Weight;
                }
            });
        }
        void save(HostView host)
        {
            var rule = CommonDataManager.GetAminRule(base.LocalID);
            var cp   = CommonDataManager.GetCPCase(base.LocalID);

            rule.AmPmClassHours.Clear();

            var results = Rules.Where(r => r.IsChecked);

            if (results != null)
            {
                foreach (var r in results)
                {
                    var ampm = new XYKernel.OS.Common.Models.Administrative.Rule.AmPmClassHourRule()
                    {
                        ClassID  = r.ClassID,
                        CourseID = r.CourseID,
                        AmMax    = r.AmMax,
                        PmMax    = r.PmMax,
                        Weight   = (int)r.Weight
                    };
                    rule.AmPmClassHours.Add(ampm);
                }

                rule.Serialize(base.LocalID);
                this.ShowDialog("提示信息", "保存成功", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
            }
        }
        public void Initilize()
        {
            this.Comments = CommonDataManager.GetAdminRuleComments(AdministrativeRuleEnum.MasterApprenttice);

            Messenger.Default.Register <HostView>(this, save);

            var cp   = CommonDataManager.GetCPCase(base.LocalID);
            var rule = CommonDataManager.GetAminRule(base.LocalID);

            rule.MasterApprenttices.ForEach(m =>
            {
                var course = cp.Courses.FirstOrDefault(c => c.ID.Equals(m.CourseID));
                var master = cp.Teachers.FirstOrDefault(t => t.ID.Equals(m.MasterID));

                UIMasterApprenttice uirule = new UIMasterApprenttice();
                uirule.CourseID            = m.CourseID;
                uirule.MasterID            = m.MasterID;
                uirule.Master        = master?.Name;
                uirule.Course        = course?.Name;
                uirule.ApprentticeID = cp.GetTeachersByIds(m.ApprenticeIDs);
                uirule.Weight        = (Models.Enums.WeightTypeEnum)m.Weight;

                this.Rules.Add(uirule);
            });
        }
        public void Initilize()
        {
            Messenger.Default.Register <HostView>(this, save);

            this.Comments = CommonDataManager.GetAdminRuleComments(AdministrativeRuleEnum.OddDualWeek);

            var cp   = CommonDataManager.GetCPCase(base.LocalID);
            var rule = CommonDataManager.GetAminRule(base.LocalID);

            rule.OddDualWeeks.ForEach(m =>
            {
                UIOddDualWeek oddDual = new UIOddDualWeek();
                oddDual.OddCourseID   = m.OddWeekCourseID;
                oddDual.DualCourseID  = m.DualWeekCourseID;
                oddDual.ClassID       = m.ClassID;

                var firstClass    = cp.Classes.FirstOrDefault(c => c.ID.Equals(m.ClassID));
                oddDual.ClassName = firstClass?.Name;

                var oddCourse     = cp.Courses.FirstOrDefault(c => c.ID.Equals(m.OddWeekCourseID));
                oddDual.OddCourse = oddCourse?.Name;

                var dualCourse     = cp.Courses.FirstOrDefault(c => c.ID.Equals(m.DualWeekCourseID));
                oddDual.DualCourse = dualCourse?.Name;

                this.Rules.Add(oddDual);
            });
        }
        public void Initilize()
        {
            var cp   = CommonDataManager.GetCPCase(base.LocalID);
            var rule = CommonDataManager.GetAminRule(base.LocalID);

            this.ClassTimeSlots = DataAnalysis.GetClassTimeSlotAnalysisResult(cp, rule);
            if (this.ClassTimeSlots != null)
            {
                this.ClassCount     = this.ClassTimeSlots.Count;
                this.TotalClassHour = cp.GetAvaliablePositions();
            }

            this.TeacherAnalysises = DataAnalysis.GetGeneralTeacherAnalysisResult(cp);
            if (this.TeacherAnalysises != null)
            {
                this.TeacherCount = this.TeacherAnalysises.Count;
            }

            var rules = DataAnalysis.GetRuleAnalysisResult(cp, rule);

            int no = 0;

            rules.ForEach(r =>
            {
                r.NO = ++no;
            });

            this.Rules = rules;
        }
        public static StoreTransfer CreateStoreTransfer(Dictionary <string, string> values)
        {
            StoreTransfer ST = NewStoreTransfer();

            ST.STDate          = values.ContainsKey("Date") ? DateTime.Parse(values["Date"]) : DateTime.Now;
            ST.Customer        = values.ContainsKey("Customer") ? CustomerManager.GetCustomerRef(values["Customer"]) : CustomerManager.GetDefaultRef();
            ST.Origin          = values.ContainsKey("Origin") ? CommonDataManager.GetOrigin(values["Origin"]) : CommonDataManager.GetDefaultRef();
            ST.Size            = values.ContainsKey("Size") ? CommonDataManager.GetOrigin(values["Size"]) : CommonDataManager.GetDefaultRef();
            ST.Vessel          = values.ContainsKey("Vessel") ? CommonDataManager.GetOrigin(values["Vessel"]) : CommonDataManager.GetDefaultRef();
            ST.Quantity        = values.ContainsKey("Quantity") ? decimal.Parse(values["Quantity"]) : 0;
            ST.FromStoreId     = values.ContainsKey("FromStore") ? StoreManager.GetStoreRef(values["FromStore"]) : StoreManager.GetDefaultRef();
            ST.ToStoreId       = values.ContainsKey("ToStore") ? StoreManager.GetStoreRef(values["ToStore"]) : StoreManager.GetDefaultRef();
            ST.VehicleNo       = values.ContainsKey("VehicleNo") ? values["VehicleNo"] : "";
            ST.BiltyNo         = values.ContainsKey("BiltyNo") ? values["BiltyNo"] : "";
            ST.BiltyDate       = values.ContainsKey("BiltyDate") ? DateTime.Parse(values["BiltyDate"]) : DateTime.MinValue;
            ST.RRInvoice       = values.ContainsKey("Invoice") ? values["Invoice"] : "";
            ST.CCMNumber       = values.ContainsKey("CCMNo") ? values["CCMNo"] : "";
            ST.Transporter     = values.ContainsKey("Transporter") ? CommonDataManager.GetTrader(values["Transporter"]) : CommonDataManager.GetDefaultRef();
            ST.StoreInDate     = DateTime.MinValue;
            ST.StoreInQuantity = 0;
            ST.Remarks         = values.ContainsKey("Remarks") ? values["Remarks"] : "";

            StoreDataManager.CreateStoreTransfer(StoreMap.reMapStoreTransferData(ST));

            // ztodo: create store movement record


            ResetCache();
            return(ST);
        }
        public void Initilize()
        {
            var cp   = CommonDataManager.GetCPCase(base.LocalID);
            var rule = CommonDataManager.GetAminRule(base.LocalID);

            this.TeacherClasses = DataAnalysis.GetTeacherClassAnalysisResult(cp, rule);
        }
        void getBase(OperatorEnum opratorEnum, AdministrativeAlgoRuleEnum timeRule)
        {
            base.OpratorEnum = opratorEnum;
            this._timeRule   = timeRule;
            this.TitleString = $"{ opratorEnum.GetLocalDescription()}-{timeRule.GetLocalDescription()}";
            this.RaisePropertyChanged(() => ShowRead);
            this.RaisePropertyChanged(() => ShowEdit);
            this.RaisePropertyChanged(() => ShowMaxNumber);
            this.RaisePropertyChanged(() => ShowSameMaxNumber);

            var cp = CommonDataManager.GetCPCase(base.LocalID);

            this.Sources = cp.GetClassHours(cp.ClassHours.Select(ch => ch.ID)?.ToArray());

            var results = new List <UITwoStatusWeek>();
            var groups  = cp.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();
        }
Пример #25
0
        public void upload(UIResult result)
        {
            var adjustRecord = base.LocalID.DeSerializeAdjustRecord <ResultAdjustmentModel>(result.TaskID);

            if (adjustRecord == null)
            {
                this.ShowDialog("提示信息", "没有调整记录,无法上传!", DialogSettingType.OnlyOkButton, DialogType.Warning);
                return;
            }

            var confirm = this.ShowDialog("提示信息", "确认上传方案?", DialogSettingType.OkAndCancel, DialogType.Warning);

            if (confirm == DialogResultType.OK)
            {
                var operation = WebAPI.Instance.WriteBackResult(result.TaskID, adjustRecord);
                if (operation.Item1)
                {
                    result.IsUploaded = true;
                    var local   = CommonDataManager.GetLocalCase(base.LocalID);
                    var results = ResultDataManager.GetResults(base.LocalID);
                    local.Serizlize(results);
                    this.ShowDialog("提示信息", "上传成功!", DialogSettingType.NoButton, DialogType.None);
                }
                else
                {
                    this.ShowDialog("提示信息", operation.Item3, DialogSettingType.OnlyOkButton, DialogType.Warning);
                }
            }
        }
Пример #26
0
        public SecurityManager(IModuleContext context, CommonDataManager commonDataManager)
        {
            this.context           = context;
            this.commonDataManager = commonDataManager;

            logger = context.Logger.Get <SecurityManager>();
        }
        public void Initilize()
        {
            var result = ResultDataManager.CurrentResult;

            var localResult = base.LocalID.DeSerializeLocalResult <ResultModel>(result.TaskID);

            if (localResult == null)
            {
                var value = WebAPI.Instance.GetMixedResult(result.TaskID);
                if (value.Item1)
                {
                    localResult = value.Item2;
                }
                else
                {
                    this.ErrorMessage = $"*{value.Item3}";
                    return;
                }
            }

            var cl    = CommonDataManager.GetCLCase(base.LocalID);
            var rule  = CommonDataManager.GetMixedRule(base.LocalID);
            var algo  = CommonDataManager.GetMixedAlgoRule(base.LocalID);
            var rules = ResultAnalysis.GetResultRuleFitDegreeAnalysis(cl, rule, algo, localResult);

            int no = 0;

            rules?.ForEach(r =>
            {
                r.NO = ++no;
            });

            this.Rules = rules;
        }
Пример #28
0
        private void Save()
        {
            if (string.IsNullOrEmpty(this.School))
            {
                this.ShowDialog("提示信息", "学校名称不能为空!", CustomControl.Enums.DialogSettingType.OnlyOkButton, CustomControl.Enums.DialogType.Warning);
                return;
            }

            var cp = CommonDataManager.GetCPCase(base.LocalID);

            cp.LearningPeriod            = this.SelectLearningPeriod == LearningPeriod.Kindergarten ? LearningPeriod.PrimarySchool : this.SelectLearningPeriod;
            cp.SchoolName                = this.School;
            cp.Version                   = this.Version;
            cp.IsMajorCourseSameDay      = this.IsMajorCourseSameDay;
            cp.IsPEAllowLast             = this.IsPEAllowLast;
            cp.IsTeacherClassBalance     = this.IsTeacherClassBalance;
            cp.IsTeacherContinousSameDay = this.IsTeacherContinousSameDay;
            cp.IsTeacherDayGapsLimit     = this.IsTeacherDayGapsLimit;
            cp.IsTeacherHalfDay          = this.IsTeacherHalfDay;
            cp.IsTeacherPositionBalance  = this.IsTeacherPositionBalance;
            cp.IsThreeClassHourLimit     = this.IsThreeClassHourLimit;
            cp.IsTwoClassHourLimit       = this.IsTwoClassHourLimit;
            cp.Serialize(base.LocalID);

            this.ShowDialog("提示信息", "保存成功!", CustomControl.Enums.DialogSettingType.NoButton, CustomControl.Enums.DialogType.None);
        }
Пример #29
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);
            });
        }
        public void Initilize()
        {
            var cl = base.GetClCase(base.LocalID);

            this.RoomLimit = cl.RoomLimit;

            this.Comments = CommonDataManager.GetMixedRuleComments(MixedRuleEnum.AvailableRoom);
        }