PurplePen.Reports.WriteControlLoadSection C# (CSharp) Méthode

WriteControlLoadSection() private méthode

private WriteControlLoadSection ( EventDB eventDB ) : void
eventDB EventDB
Résultat void
        void WriteControlLoadSection(EventDB eventDB)
        {
            List<ControlLoadInfo> loadInfos = new List<ControlLoadInfo>();

            // Get load information about each control.
            foreach (Id<ControlPoint> controlId in eventDB.AllControlPointIds) {
                ControlPoint control = eventDB.GetControl(controlId);

                if (control.kind != ControlPointKind.Normal)
                    continue;     // only list normal controls.

                ControlLoadInfo loadInfo = new ControlLoadInfo();

                loadInfo.controlId = controlId;
                loadInfo.controlName = Util.ControlPointName(eventDB, controlId, NameStyle.Medium);
                loadInfo.numCourses = QueryEvent.CoursesUsingControl(eventDB, controlId).Length;
                loadInfo.load = QueryEvent.GetControlLoad(eventDB, controlId);

                loadInfos.Add(loadInfo);
            }

            // Sort the load information, first by load, then by number of courses, then by name.
            loadInfos.Sort(delegate(ControlLoadInfo loadInfo1, ControlLoadInfo loadInfo2) {
                if (loadInfo1.load < loadInfo2.load) return 1;
                else if (loadInfo1.load > loadInfo2.load) return -1;

                if (loadInfo1.numCourses < loadInfo2.numCourses) return 1;
                else if (loadInfo1.numCourses > loadInfo2.numCourses) return -1;

                int result = Util.CompareCodes(loadInfo1.controlName, loadInfo2.controlName);
                if (result != 0)
                    return result;

                return loadInfo1.controlId.id.CompareTo(loadInfo2.controlId.id);
            });

            // Write the table.
            BeginTable("", 3, "leftalign", "rightalign", "rightalign");
            WriteTableHeaderRow(ReportText.ColumnHeader_Control, ReportText.ColumnHeader_NumberOfCourses, ReportText.ColumnHeader_Load);

            foreach (ControlLoadInfo loadInfo in loadInfos) {
                WriteTableRow(loadInfo.controlName,
                                        Convert.ToString(loadInfo.numCourses),
                                        loadInfo.load >= 0 ? Convert.ToString(loadInfo.load) : "");
            }

            EndTable();
        }