Ejemplo n.º 1
0
        // Get the text of the second title line, or null if there is no such title line.
        private string GetTitleLine2()
        {
            Id <Course> id = courseView.BaseCourseId;

            if (id.IsNotNone)
            {
                Course course = eventDB.GetCourse(id);
                return(course.secondaryTitle);
            }
            else
            {
                return(null);  // Probably all controls. No second line is correct for that.
            }
        }
Ejemplo n.º 2
0
        public void Version101()
        {
            TestLoadFile("compatibility\\Sample Event_101.ppen");
            // Make sure first ordinal is correct.
            // Make sure label kind is correct.
            EventDB eventDB = controller.GetEventDB();
            Course  course  = eventDB.GetCourse(CourseId(3));

            Assert.AreEqual(1, course.firstControlOrdinal);
            Assert.AreEqual(ControlLabelKind.Sequence, course.labelKind);
            Assert.AreEqual(-1, course.scoreColumn);
            course = eventDB.GetCourse(CourseId(6));
            Assert.AreEqual(ControlLabelKind.Code, course.labelKind);
            Assert.AreEqual(0, course.scoreColumn);
        }
Ejemplo n.º 3
0
 void WriteTeamAssignments()
 {
     foreach (Id <Course> courseId in QueryEvent.SortedCourseIds(eventDB))
     {
         if (QueryEvent.HasVariations(eventDB, courseId))
         {
             Course course = eventDB.GetCourse(courseId);
             if (course.relaySettings.relayTeams > 0)
             {
                 RelayVariations relayVariations = new RelayVariations(eventDB, courseId, course.relaySettings);
                 WriteRelayVariations(courseId, relayVariations);
             }
         }
     }
 }
Ejemplo n.º 4
0
        public void WriteFullXml(string filename, RelayVariations relayVariations, EventDB eventDB, Id <Course> courseId)
        {
            this.relayVariations  = relayVariations;
            this.eventDB          = eventDB;
            this.courseId         = courseId;
            this.modificationDate = DateTimeOffset.Now;
            this.courseName       = eventDB.GetCourse(courseId).name;

            // Create the XML writer.
            XmlWriterSettings settings = new XmlWriterSettings();

            settings.Indent   = true;
            settings.Encoding = new UTF8Encoding(false);
            xmlWriter         = XmlWriter.Create(filename, settings);

            WriteStart();

            WriteAllTeams();

            WriteEnd();

            // And done.
            xmlWriter.Close();
            eventDB   = null;
            xmlWriter = null;
        }
Ejemplo n.º 5
0
        public SelectVariations(EventDB eventDB, Id <Course> courseId)
        {
            InitializeComponent();

            this.eventDB  = eventDB;
            this.courseId = courseId;

            Course course = eventDB.GetCourse(courseId);

            if (course.relaySettings.relayTeams > 0)
            {
                firstTeam = course.relaySettings.firstTeamNumber;
                lastTeam  = firstTeam + course.relaySettings.relayTeams - 1;
            }
            else
            {
                firstTeam = lastTeam = null;
            }

            comboBoxVariations.SelectedIndex = 0;
            if (firstTeam.HasValue && lastTeam.HasValue)
            {
                upDownFirstTeam.Maximum = upDownLastTeam.Maximum = lastTeam.Value;
                upDownFirstTeam.Minimum = upDownLastTeam.Minimum = firstTeam.Value;
                upDownFirstTeam.Value   = firstTeam.Value;
                upDownLastTeam.Value    = lastTeam.Value;

                labelNumberOfTeams.Text = string.Format(labelNumberOfTeams.Text, (lastTeam.Value - firstTeam.Value) + 1);
            }

            UpdateControls();
        }
Ejemplo n.º 6
0
        // Hit test a point to see if it is over an existing control, or will create a new control.
        Id <ControlPoint> HitTestPoint(PointF mouseLocation, float pixelSize, out PointF highlightLocation)
        {
            if (allControls)
            {
                // If all controls, always new control.
                highlightLocation = new PointF(mouseLocation.X + PIXELOFFSETX * pixelSize, mouseLocation.Y + PIXELOFFSETY * pixelSize);
                return(Id <ControlPoint> .None);
            }
            else
            {
                // Are we over a control we might add?
                CourseLayout   layout    = controller.GetCourseLayout();
                PointCourseObj courseObj = layout.HitTest(mouseLocation, pixelSize, CourseLayer.AllControls, (co => co is PointCourseObj)) as PointCourseObj;
                if (courseObj != null)
                {
                    highlightLocation = courseObj.location;
                    return(courseObj.controlId);
                }
                else
                {
                    courseObj = layout.HitTest(mouseLocation, pixelSize, CourseLayer.MainCourse, (co => co is PointCourseObj)) as PointCourseObj;
                    if (courseObj != null &&
                        courseObj.controlId.IsNotNone)
                    {
                        // Allow selecting a control in the current course for a butterfly course. But -- it must be a normal control or crossing point, and not adjacent to the control being inserted.
                        if (eventDB.GetControl(courseObj.controlId).kind == controlKind && (controlKind == ControlPointKind.Normal || controlKind == ControlPointKind.CrossingPoint))
                        {
                            Id <CourseControl> courseControl1, courseControl2;
                            CourseDesignator   courseDesignator;
                            LegInsertionLoc    legInsertionLoc;

                            GetControlInsertionPoint(courseObj.location, out courseDesignator, out courseControl1, out courseControl2, out legInsertionLoc);
                            if (eventDB.GetCourse(courseDesignator.CourseId).kind != CourseKind.Score &&
                                (exchangeAtControl ||
                                 (courseObj.courseControlId != courseControl1 && courseObj.courseControlId != courseControl2)))
                            {
                                highlightLocation = courseObj.location;
                                return(courseObj.controlId);
                            }
                        }
                    }

                    highlightLocation = new PointF(mouseLocation.X + PIXELOFFSETX * pixelSize, mouseLocation.Y + PIXELOFFSETY * pixelSize);
                    return(Id <ControlPoint> .None);
                }
            }
        }
Ejemplo n.º 7
0
 public override string ToString()
 {
     if (id.IsNone)
     {
         return("All Controls");
     }
     else
     {
         return(string.Format("{0} - {1}", id, eventDB.GetCourse(id).name));
     }
 }
Ejemplo n.º 8
0
        public void WriteTeamsPart(XmlWriter xmlWriter, RelayVariations relayVariations, EventDB eventDB, Id <Course> courseId)
        {
            this.xmlWriter        = xmlWriter;
            this.relayVariations  = relayVariations;
            this.eventDB          = eventDB;
            this.courseId         = courseId;
            this.modificationDate = DateTimeOffset.Now;
            this.courseName       = eventDB.GetCourse(courseId).name;

            WriteAllTeams();
        }
Ejemplo n.º 9
0
        // Update the names of all course views, and get the active course view, based on the active course id.
        void UpdateCourseViews()
        {
            List<KeyValuePair<Id<Course>,string>> courseViewPairs = new List<KeyValuePair<Id<Course>,string>>(); // Holds the list of course views and names, for sorting. Does NOT include all controls.

            // Get all the pairs of course ids in sorted order.
            Id<Course>[] courseIds = QueryEvent.SortedCourseIds(eventDB);

            // Copy to the names and ids arrays, adding in All Controls as the first element.
            courseViewNames = new string[courseIds.Length + 1];
            courseViewIds = new Id<Course>[courseIds.Length + 1];
            courseViewNames[0] = MiscText.AllControls;
            courseViewIds[0] = Id<Course>.None;
            for (int i = 1; i < courseViewIds.Length; ++i) {
                courseViewNames[i] = eventDB.GetCourse(courseIds[i - 1]).name;
                courseViewIds[i] = courseIds[i-1];
            }

            // Figure out which course view is the active one. We have already validate that the active course id
            // is present.
            if (activeCourseDesignator.IsAllControls) {
                activeCourseViewIndex = 0;
                activeCourseView = CourseView.CreateViewingCourseView(eventDB, CourseDesignator.AllControls);
            }
            else {
                for (int i = 1; i < courseViewIds.Length; ++i) {
                    if (courseViewIds[i] == activeCourseDesignator.CourseId) {
                        activeCourseViewIndex = i;
                        activeCourseView = CourseView.CreateViewingCourseView(eventDB, activeCourseDesignator);
                    }
                }
            }

            // Get/create the topology course view. Not supported (null) for score and all controls. Always shows
            // all variations for a course with variations.
            if (activeCourseView.Kind == CourseView.CourseViewKind.Normal) {
                if (QueryEvent.HasVariations(activeCourseView.EventDB, activeCourseView.BaseCourseId) || !activeCourseView.CourseDesignator.AllParts) {
                    topologyCourseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(activeCourseView.BaseCourseId));
                }
                else {
                    topologyCourseView = activeCourseView;
                }
            }
            else if (activeCourseView.Kind == CourseView.CourseViewKind.AllVariations) {
                topologyCourseView = activeCourseView;
            }
            else {
                topologyCourseView = null;
            }
        }
Ejemplo n.º 10
0
        // Get all the class names associated with this course.
        protected string[] GetClassNames(EventDB eventDB, Id <Course> courseId)
        {
            Course course         = eventDB.GetCourse(courseId);
            string secondaryTitle = course.secondaryTitle;

            if (!string.IsNullOrEmpty(secondaryTitle))
            {
                // Assumed that classes are separated with commas.
                return((from s in secondaryTitle.Split(new char[] { ',', '|' }, StringSplitOptions.RemoveEmptyEntries) select s.Trim()).ToArray());
            }
            else
            {
                return(new string[0]);
            }
        }
Ejemplo n.º 11
0
        // Get the file name for a bitmap description for testing purposes. CourseID == 0 means all controls. Extra
        // is an extra string to suffix to the base name. Does not end in .png unless specified in extra.
        public static string GetBitmapFileName(EventDB eventDB, Id<Course> courseId, string extra, DescriptionKind kind)
        {
            Course course = null;
            string name;

            if (courseId.IsNotNone)
                course = eventDB.GetCourse(courseId);

            if (course != null)
                name = course.name;
            else
                name = "Allcontrols";

            name = "descriptions\\" + name + "_" + kind.ToString() + extra;

            return name;
        }
Ejemplo n.º 12
0
        // Get the text for a list of courses. Returns "None" for no courses. Returns "All courses" for all courses.
        // The list of course names in the canonical order of courses (same as the tab order).
        private static string CourseListText(EventDB eventDB, Id <Course>[] courseIds)
        {
            if (courseIds.Length == 0)
            {
                return(SelectionDescriptionText.CourseList_None);
            }

            if (courseIds.Length == QueryEvent.CountCourses(eventDB))
            {
                return(SelectionDescriptionText.CourseList_AllCourses);
            }

            StringBuilder builder = new StringBuilder();

            Id <Course>[] sortedCourseIds = QueryEvent.SortedCourseIds(eventDB);
            List <string> courseNames     = new List <string>();

            if (courseIds.Contains(new Id <Course>(0)))
            {
                courseNames.Add(MiscText.AllControls);
            }

            for (int i = 0; i < sortedCourseIds.Length; ++i)
            {
                if (courseIds.Contains(sortedCourseIds[i]))
                {
                    courseNames.Add(eventDB.GetCourse(sortedCourseIds[i]).name);
                }
            }

            for (int i = 0; i < courseNames.Count; ++i)
            {
                if (i != 0)
                {
                    builder.Append(", ");
                }
                builder.Append(courseNames[i]);
            }

            return(builder.ToString());
        }
Ejemplo n.º 13
0
        // Get the file name for a bitmap description for testing purposes. CourseID == 0 means all controls. Extra
        // is an extra string to suffix to the base name. Does not end in .png unless specified in extra.
        internal static string GetBitmapFileName(EventDB eventDB, Id <Course> courseId, string extra)
        {
            Course course = null;
            string name;

            if (courseId.IsNotNone)
            {
                course = eventDB.GetCourse(courseId);
            }

            if (course != null)
            {
                name = course.name;
            }
            else
            {
                name = "Allcontrols";
            }

            name = "punchcards\\" + name + extra;

            return(name);
        }
Ejemplo n.º 14
0
        // Get the file name for a bitmap description for testing purposes. CourseID == 0 means all controls. Extra
        // is an extra string to suffix to the base name. Does not end in .png unless specified in extra.
        public static string GetBitmapFileName(EventDB eventDB, Id <Course> courseId, string extra, DescriptionKind kind)
        {
            Course course = null;
            string name;

            if (courseId.IsNotNone)
            {
                course = eventDB.GetCourse(courseId);
            }


            if (course != null)
            {
                name = course.name;
            }
            else
            {
                name = "Allcontrols";
            }

            name = "descriptions\\" + name + "_" + kind.ToString() + extra;

            return(name);
        }
Ejemplo n.º 15
0
        public void RoundTripCourses()
        {
            UndoMgr    undomgr   = new UndoMgr(5);
            EventDB    eventDB   = new EventDB(undomgr);
            RectangleF mapBounds = new RectangleF(0, 0, 200, 300);

            Course course1, course2, course3, course4, course5;

            undomgr.BeginCommand(61, "Command1");

            course1                    = new Course(CourseKind.Normal, "White", 15000, 1);
            course1.descKind           = DescriptionKind.Symbols;
            course1.secondaryTitle     = "White is right";
            course1.load               = 0;
            course1.firstCourseControl = CourseControlId(1);
            course1.UpdateUnknownPageSizes(mapBounds, 15000);
            eventDB.AddCourse(course1);

            course2 = new Course(CourseKind.Normal, "Yellow", 15000, 2);
            course2.hideVariationsOnMap = true;
            course2.descKind            = DescriptionKind.SymbolsAndText;
            course2.climb              = 95;
            course2.labelKind          = ControlLabelKind.Code;
            course2.firstCourseControl = CourseControlId(0);
            course2.printArea          = new PrintArea(false, true, new RectangleF(50, 70, 200, 100));
            course2.partPrintAreas[1]  = new PrintArea(false, false, new RectangleF(10, 20, 30, 40), 1.1F);
            course2.partPrintAreas[0]  = new PrintArea(true, false, new RectangleF(70, 10, 130, 140));
            course2.partOptions[1]     = new PartOptions()
            {
                ShowFinish = true
            };
            course2.partOptions[0] = new PartOptions()
            {
                ShowFinish = false
            };
            course2.relaySettings = new RelaySettings(6, 43, 3);
            course2.UpdateUnknownPageSizes(mapBounds, 15000);
            eventDB.AddCourse(course2);

            course3 = new Course(CourseKind.Score, "Rambo", 10000, 3);
            course3.secondaryTitle     = "";
            course3.firstCourseControl = CourseControlId(2);
            course3.load  = 125;
            course3.climb = 0;
            course3.firstControlOrdinal = 7;
            course3.labelKind           = ControlLabelKind.SequenceAndCode;
            course3.descKind            = DescriptionKind.Text;
            course3.partPrintAreas[1]   = new PrintArea(true, true, new RectangleF(-10, -20, 90, 80), 0.9F);
            course3.UpdateUnknownPageSizes(mapBounds, 15000);
            eventDB.AddCourse(course3);

            course4 = new Course(CourseKind.Score, "Silly1", 10000, 3);
            course4.secondaryTitle     = "";
            course4.firstCourseControl = CourseControlId(2);
            course4.load  = 0;
            course4.climb = 25;
            course4.overrideCourseLength = 4243;
            course4.firstControlOrdinal  = 3;
            course4.labelKind            = ControlLabelKind.SequenceAndScore;
            course4.descKind             = DescriptionKind.SymbolsAndText;
            course4.partPrintAreas[1]    = new PrintArea(false, false, new RectangleF(-10, -20, 90, 80));
            course4.partOptions[1]       = new PartOptions()
            {
                ShowFinish = false
            };
            course4.UpdateUnknownPageSizes(mapBounds, 15000);
            eventDB.AddCourse(course4);

            course5 = new Course(CourseKind.Score, "Silly2", 10000, 3);
            course5.secondaryTitle     = "";
            course5.firstCourseControl = CourseControlId(2);
            course5.load  = 125;
            course5.climb = 0;
            course5.firstControlOrdinal = 1;
            course5.labelKind           = ControlLabelKind.CodeAndScore;
            course5.descKind            = DescriptionKind.Symbols;
            course5.partPrintAreas[1]   = new PrintArea(false, false, new RectangleF(-10, -20, 90, 80), 1.25F);
            FixedBranchAssignments relayBranchAssignments = new FixedBranchAssignments();

            relayBranchAssignments.AddBranchAssignment('B', 1);
            relayBranchAssignments.AddBranchAssignment('A', 2);
            relayBranchAssignments.AddBranchAssignment('A', 3);
            relayBranchAssignments.AddBranchAssignment('C', 4);
            course5.relaySettings = new RelaySettings(10, 5, 6, relayBranchAssignments);
            course5.UpdateUnknownPageSizes(mapBounds, 15000);
            eventDB.AddCourse(course5);

            undomgr.EndCommand(61);

            eventDB.Save(TestUtil.GetTestFile("eventdb\\testoutput_temp.xml"));

            undomgr.Clear();
            eventDB = new EventDB(undomgr);

            eventDB.Load(TestUtil.GetTestFile("eventdb\\testoutput_temp.xml"));

            Assert.AreEqual(eventDB.GetCourse(CourseId(1)), course1);
            Assert.AreEqual(eventDB.GetCourse(CourseId(2)), course2);
            Assert.AreEqual(eventDB.GetCourse(CourseId(3)), course3);
            Assert.AreEqual(eventDB.GetCourse(CourseId(4)), course4);
            Assert.AreEqual(eventDB.GetCourse(CourseId(5)), course5);

            TestUtil.TestEnumerableAnyOrder(eventDB.AllCoursePairs,
                                            new KeyValuePair <Id <Course>, Course>[] {
                new KeyValuePair <Id <Course>, Course>(CourseId(1), course1),
                new KeyValuePair <Id <Course>, Course>(CourseId(2), course2),
                new KeyValuePair <Id <Course>, Course>(CourseId(3), course3),
                new KeyValuePair <Id <Course>, Course>(CourseId(4), course4),
                new KeyValuePair <Id <Course>, Course>(CourseId(5), course5),
            }
                                            );
        }
Ejemplo n.º 16
0
        // Get the file name for a bitmap description for testing purposes. CourseID == 0 means all controls. Extra
        // is an extra string to suffix to the base name. Does not end in .png unless specified in extra.
        internal static string GetBitmapFileName(EventDB eventDB, Id<Course> courseId, string extra)
        {
            Course course = null;
            string name;

            if (courseId.IsNotNone)
                course = eventDB.GetCourse(courseId);

            if (course != null)
                name = course.name;
            else
                name = "Allcontrols";

            name = "punchcards\\" + name + extra;

            return name;
        }
Ejemplo n.º 17
0
 // Get the text name for a course.
 public static string CourseName(EventDB eventDB, Id <Course> courseId)
 {
     return(eventDB.GetCourse(courseId).name);
 }
Ejemplo n.º 18
0
        public void MigratePrintArea()
        {
            UndoMgr undomgr = new UndoMgr(5);
            EventDB eventDB = new EventDB(undomgr);

            eventDB.Load(TestUtil.GetTestFile("eventdb\\Lk Samm print area.ppen"));
            eventDB.Validate();

            PrintArea result;

            result = eventDB.GetEvent().printArea;
            Assert.IsTrue(result.autoPrintArea);
            Assert.IsTrue(result.restrictToPageSize);
            Assert.AreEqual(850, result.pageWidth);
            Assert.AreEqual(1100, result.pageHeight);
            Assert.AreEqual(25, result.pageMargins);
            Assert.IsTrue(result.pageLandscape);


            result = eventDB.GetCourse(CourseId(1)).printArea;
            Assert.IsTrue(result.autoPrintArea);
            Assert.IsTrue(result.restrictToPageSize);
            Assert.AreEqual(850, result.pageWidth);
            Assert.AreEqual(1100, result.pageHeight);
            Assert.AreEqual(25, result.pageMargins);
            Assert.IsTrue(result.pageLandscape);

            result = eventDB.GetCourse(CourseId(2)).printArea;
            Assert.IsTrue(result.autoPrintArea);
            Assert.IsTrue(result.restrictToPageSize);
            Assert.AreEqual(850, result.pageWidth);
            Assert.AreEqual(1100, result.pageHeight);
            Assert.AreEqual(0, result.pageMargins);
            Assert.IsTrue(result.pageLandscape);

            result = eventDB.GetCourse(CourseId(3)).printArea;
            Assert.IsFalse(result.autoPrintArea);
            Assert.IsFalse(result.restrictToPageSize);
            Assert.AreEqual(850, result.pageWidth);
            Assert.AreEqual(1100, result.pageHeight);
            Assert.AreEqual(25, result.pageMargins);
            Assert.IsFalse(result.pageLandscape);
            Assert.AreEqual(-71.2542343F, result.printAreaRectangle.Left, 0.001F);
            Assert.AreEqual(72.57579F, result.printAreaRectangle.Bottom, 0.001F);
            Assert.AreEqual(50.98423F, result.printAreaRectangle.Right, 0.001F);
            Assert.AreEqual(-79.690155F, result.printAreaRectangle.Top, 0.001F);

            result = QueryEvent.GetPrintArea(eventDB, Designator(4, 0));
            Assert.IsTrue(result.autoPrintArea);
            Assert.IsTrue(result.restrictToPageSize);
            Assert.AreEqual(850, result.pageWidth);
            Assert.AreEqual(1100, result.pageHeight);
            Assert.AreEqual(25, result.pageMargins);
            Assert.IsTrue(result.pageLandscape);

            result = QueryEvent.GetPrintArea(eventDB, Designator(4, 1));
            Assert.IsFalse(result.autoPrintArea);
            Assert.IsFalse(result.restrictToPageSize);
            Assert.AreEqual(850, result.pageWidth);
            Assert.AreEqual(1100, result.pageHeight);
            Assert.AreEqual(25, result.pageMargins);
            Assert.IsTrue(result.pageLandscape);
            Assert.AreEqual(-77.77993F, result.printAreaRectangle.Left, 0.001F);
            Assert.AreEqual(41.0349922F, result.printAreaRectangle.Bottom, 0.001F);
            Assert.AreEqual(63.4918137F, result.printAreaRectangle.Right, 0.001F);
            Assert.AreEqual(-57.73753F, result.printAreaRectangle.Top, 0.001F);
        }
Ejemplo n.º 19
0
        public void RoundTripCourses()
        {
            UndoMgr undomgr = new UndoMgr(5);
            EventDB eventDB = new EventDB(undomgr);
            RectangleF mapBounds = new RectangleF(0, 0, 200, 300);

            Course course1, course2, course3, course4, course5;

            undomgr.BeginCommand(61, "Command1");

            course1 = new Course(CourseKind.Normal, "White", 15000, 1);
            course1.descKind = DescriptionKind.Symbols;
            course1.secondaryTitle = "White is right";
            course1.load = 0;
            course1.firstCourseControl = CourseControlId(1);
            course1.UpdateUnknownPageSizes(mapBounds, 15000);
            eventDB.AddCourse(course1);

            course2 = new Course(CourseKind.Normal, "Yellow", 15000, 2);
            course2.descKind = DescriptionKind.SymbolsAndText;
            course2.climb = 95;
            course2.labelKind = ControlLabelKind.Code;
            course2.firstCourseControl = CourseControlId(0);
            course2.printArea = new PrintArea(false, true, new RectangleF(50, 70, 200, 100));
            course2.partPrintAreas[1] = new PrintArea(false, false, new RectangleF(10, 20, 30, 40), 1.1F);
            course2.partPrintAreas[0] = new PrintArea(true, false, new RectangleF(70, 10, 130, 140));
            course2.partOptions[1] = new PartOptions() { ShowFinish = true };
            course2.partOptions[0] = new PartOptions() { ShowFinish = false };
            course2.relayTeams = 43;
            course2.relayLegs = 3;
            course2.UpdateUnknownPageSizes(mapBounds, 15000);
            eventDB.AddCourse(course2);

            course3 = new Course(CourseKind.Score, "Rambo", 10000, 3);
            course3.secondaryTitle = "";
            course3.firstCourseControl = CourseControlId(2);
            course3.load = 125;
            course3.climb = 0;
            course3.firstControlOrdinal = 7;
            course3.labelKind = ControlLabelKind.SequenceAndCode;
            course3.descKind = DescriptionKind.Text;
            course3.partPrintAreas[1] = new PrintArea(true, true, new RectangleF(-10, -20, 90, 80), 0.9F);
            course3.UpdateUnknownPageSizes(mapBounds, 15000);
            eventDB.AddCourse(course3);

            course4 = new Course(CourseKind.Score, "Silly1", 10000, 3);
            course4.secondaryTitle = "";
            course4.firstCourseControl = CourseControlId(2);
            course4.load = 0;
            course4.climb = 25;
            course4.overrideCourseLength = 4243;
            course4.firstControlOrdinal = 3;
            course4.labelKind = ControlLabelKind.SequenceAndScore;
            course4.descKind = DescriptionKind.SymbolsAndText;
            course4.partPrintAreas[1] = new PrintArea(false, false, new RectangleF(-10, -20, 90, 80));
            course4.partOptions[1] = new PartOptions() { ShowFinish = false };
            course4.relayTeams = 0;
            course4.UpdateUnknownPageSizes(mapBounds, 15000);
            eventDB.AddCourse(course4);

            course5 = new Course(CourseKind.Score, "Silly2", 10000, 3);
            course5.secondaryTitle = "";
            course5.firstCourseControl = CourseControlId(2);
            course5.load = 125;
            course5.climb = 0;
            course5.firstControlOrdinal = 1;
            course5.labelKind = ControlLabelKind.CodeAndScore;
            course5.descKind = DescriptionKind.Symbols;
            course5.partPrintAreas[1] = new PrintArea(false, false, new RectangleF(-10, -20, 90, 80), 1.25F);
            course5.relayTeams = 5;
            course5.relayLegs = 6;
            course5.UpdateUnknownPageSizes(mapBounds, 15000);
            eventDB.AddCourse(course5);

            undomgr.EndCommand(61);

            eventDB.Save(TestUtil.GetTestFile("eventdb\\testoutput_temp.xml"));

            undomgr.Clear();
            eventDB = new EventDB(undomgr);

            eventDB.Load(TestUtil.GetTestFile("eventdb\\testoutput_temp.xml"));

            Assert.AreEqual(eventDB.GetCourse(CourseId(1)), course1);
            Assert.AreEqual(eventDB.GetCourse(CourseId(2)), course2);
            Assert.AreEqual(eventDB.GetCourse(CourseId(3)), course3);
            Assert.AreEqual(eventDB.GetCourse(CourseId(4)), course4);
            Assert.AreEqual(eventDB.GetCourse(CourseId(5)), course5);

            TestUtil.TestEnumerableAnyOrder(eventDB.AllCoursePairs,
                new KeyValuePair<Id<Course>, Course>[] {
                    new KeyValuePair<Id<Course>,Course>(CourseId(1), course1),
                    new KeyValuePair<Id<Course>,Course>(CourseId(2), course2),
                    new KeyValuePair<Id<Course>,Course>(CourseId(3), course3),
                    new KeyValuePair<Id<Course>,Course>(CourseId(4), course4),
                    new KeyValuePair<Id<Course>,Course>(CourseId(5), course5),
                }
            );
        }
Ejemplo n.º 20
0
        public void MigratePrintAreaMetric()
        {
            CultureInfo currentCulture;

            currentCulture = Thread.CurrentThread.CurrentCulture;
            try {
                CultureInfo.CurrentCulture.ClearCachedData();
                Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("de-DE");

                Assert.IsTrue(RegionInfo.CurrentRegion.IsMetric);

                UndoMgr undomgr = new UndoMgr(5);
                EventDB eventDB = new EventDB(undomgr);

                eventDB.Load(TestUtil.GetTestFile("eventdb\\Lk Samm print area.ppen"));
                eventDB.Validate();

                PrintArea result;

                result = eventDB.GetEvent().printArea;
                Assert.IsTrue(result.autoPrintArea);
                Assert.IsTrue(result.restrictToPageSize);
                Assert.AreEqual(827, result.pageWidth);
                Assert.AreEqual(1169, result.pageHeight);
                Assert.AreEqual(28, result.pageMargins);
                Assert.IsTrue(result.pageLandscape);

                result = eventDB.GetCourse(CourseId(1)).printArea;
                Assert.IsTrue(result.autoPrintArea);
                Assert.IsTrue(result.restrictToPageSize);
                Assert.AreEqual(827, result.pageWidth);
                Assert.AreEqual(1169, result.pageHeight);
                Assert.AreEqual(28, result.pageMargins);
                Assert.IsTrue(result.pageLandscape);

                result = eventDB.GetCourse(CourseId(2)).printArea;
                Assert.IsTrue(result.autoPrintArea);
                Assert.IsTrue(result.restrictToPageSize);
                Assert.AreEqual(1169, result.pageWidth);
                Assert.AreEqual(1654, result.pageHeight);
                Assert.AreEqual(0, result.pageMargins);
                Assert.IsTrue(result.pageLandscape);

                result = eventDB.GetCourse(CourseId(3)).printArea;
                Assert.IsFalse(result.autoPrintArea);
                Assert.IsFalse(result.restrictToPageSize);
                Assert.AreEqual(583, result.pageWidth);
                Assert.AreEqual(827, result.pageHeight);
                Assert.AreEqual(28, result.pageMargins);
                Assert.IsFalse(result.pageLandscape);
                Assert.AreEqual(-71.2542343F, result.printAreaRectangle.Left, 0.001F);
                Assert.AreEqual(72.57579F, result.printAreaRectangle.Bottom, 0.001F);
                Assert.AreEqual(50.98423F, result.printAreaRectangle.Right, 0.001F);
                Assert.AreEqual(-79.690155F, result.printAreaRectangle.Top, 0.001F);

                result = QueryEvent.GetPrintArea(eventDB, Designator(4, 0));
                Assert.IsTrue(result.autoPrintArea);
                Assert.IsTrue(result.restrictToPageSize);
                Assert.AreEqual(827, result.pageWidth);
                Assert.AreEqual(1169, result.pageHeight);
                Assert.AreEqual(28, result.pageMargins);
                Assert.IsTrue(result.pageLandscape);

                result = QueryEvent.GetPrintArea(eventDB, Designator(4, 1));
                Assert.IsFalse(result.autoPrintArea);
                Assert.IsFalse(result.restrictToPageSize);
                Assert.AreEqual(413, result.pageWidth);
                Assert.AreEqual(583, result.pageHeight);
                Assert.AreEqual(0, result.pageMargins);
                Assert.IsTrue(result.pageLandscape);
                Assert.AreEqual(-77.77993F, result.printAreaRectangle.Left, 0.001F);
                Assert.AreEqual(41.0349922F, result.printAreaRectangle.Bottom, 0.001F);
                Assert.AreEqual(63.4918137F, result.printAreaRectangle.Right, 0.001F);
                Assert.AreEqual(-57.73753F, result.printAreaRectangle.Top, 0.001F);

            }
            finally {
                CultureInfo.CurrentCulture.ClearCachedData();
                Thread.CurrentThread.CurrentCulture = currentCulture;
            }
        }
Ejemplo n.º 21
0
        private void LoadList()
        {
            if (eventDB != null && !loaded)
            {
                if (showAllControls)
                {
                    courseTreeView.Nodes.Add(new TreeNode(MiscText.AllControls)
                    {
                        Tag = CourseDesignator.AllControls
                    });
                }

                foreach (Id <Course> courseId in QueryEvent.SortedCourseIds(eventDB))
                {
                    TreeNode[] parts = null;

                    // If the course has parts, get all the parts.
                    int numberParts = QueryEvent.CountCourseParts(eventDB, new CourseDesignator(courseId), true);
                    if (showCourseParts && numberParts > 1)
                    {
                        parts = new TreeNode[numberParts];
                        for (int part = 0; part < numberParts; ++part)
                        {
                            CourseDesignator partDesignator = new CourseDesignator(courseId, part);
                            if (CheckFilter(partDesignator))
                            {
                                parts[part] = new TreeNode(string.Format(MiscText.PartN, part + 1))
                                {
                                    Tag     = partDesignator,
                                    Checked = true
                                };
                            }
                        }
                    }

                    // Add node for the course to the tree.
                    CourseDesignator designator = new CourseDesignator(courseId);
                    if (CheckFilter(designator))
                    {
                        TreeNode node;
                        if (parts != null)
                        {
                            node = new TreeNode(eventDB.GetCourse(courseId).name, parts);
                        }
                        else
                        {
                            node = new TreeNode(eventDB.GetCourse(courseId).name);
                        }

                        node.Tag     = designator;
                        node.Checked = true;
                        courseTreeView.Nodes.Add(node);
                    }
                }

                courseTreeView.ExpandAll();

                buttonChooseVariations.Visible = (ShowVariationChooser && eventHasVariations);

                loaded = true;
            }
        }
Ejemplo n.º 22
0
        public void MigratePrintAreaMetric()
        {
            CultureInfo currentCulture;

            currentCulture = Thread.CurrentThread.CurrentCulture;
            try {
                CultureInfo.CurrentCulture.ClearCachedData();
                Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("de-DE");

                Assert.IsTrue(RegionInfo.CurrentRegion.IsMetric);

                UndoMgr undomgr = new UndoMgr(5);
                EventDB eventDB = new EventDB(undomgr);

                eventDB.Load(TestUtil.GetTestFile("eventdb\\Lk Samm print area.ppen"));
                eventDB.Validate();

                PrintArea result;

                result = eventDB.GetEvent().printArea;
                Assert.IsTrue(result.autoPrintArea);
                Assert.IsTrue(result.restrictToPageSize);
                Assert.AreEqual(827, result.pageWidth);
                Assert.AreEqual(1169, result.pageHeight);
                Assert.AreEqual(28, result.pageMargins);
                Assert.IsTrue(result.pageLandscape);

                result = eventDB.GetCourse(CourseId(1)).printArea;
                Assert.IsTrue(result.autoPrintArea);
                Assert.IsTrue(result.restrictToPageSize);
                Assert.AreEqual(827, result.pageWidth);
                Assert.AreEqual(1169, result.pageHeight);
                Assert.AreEqual(28, result.pageMargins);
                Assert.IsTrue(result.pageLandscape);

                result = eventDB.GetCourse(CourseId(2)).printArea;
                Assert.IsTrue(result.autoPrintArea);
                Assert.IsTrue(result.restrictToPageSize);
                Assert.AreEqual(1169, result.pageWidth);
                Assert.AreEqual(1654, result.pageHeight);
                Assert.AreEqual(0, result.pageMargins);
                Assert.IsTrue(result.pageLandscape);

                result = eventDB.GetCourse(CourseId(3)).printArea;
                Assert.IsFalse(result.autoPrintArea);
                Assert.IsFalse(result.restrictToPageSize);
                Assert.AreEqual(583, result.pageWidth);
                Assert.AreEqual(827, result.pageHeight);
                Assert.AreEqual(28, result.pageMargins);
                Assert.IsFalse(result.pageLandscape);
                Assert.AreEqual(-71.2542343F, result.printAreaRectangle.Left, 0.001F);
                Assert.AreEqual(72.57579F, result.printAreaRectangle.Bottom, 0.001F);
                Assert.AreEqual(50.98423F, result.printAreaRectangle.Right, 0.001F);
                Assert.AreEqual(-79.690155F, result.printAreaRectangle.Top, 0.001F);

                result = QueryEvent.GetPrintArea(eventDB, Designator(4, 0));
                Assert.IsTrue(result.autoPrintArea);
                Assert.IsTrue(result.restrictToPageSize);
                Assert.AreEqual(827, result.pageWidth);
                Assert.AreEqual(1169, result.pageHeight);
                Assert.AreEqual(28, result.pageMargins);
                Assert.IsTrue(result.pageLandscape);

                result = QueryEvent.GetPrintArea(eventDB, Designator(4, 1));
                Assert.IsFalse(result.autoPrintArea);
                Assert.IsFalse(result.restrictToPageSize);
                Assert.AreEqual(413, result.pageWidth);
                Assert.AreEqual(583, result.pageHeight);
                Assert.AreEqual(0, result.pageMargins);
                Assert.IsTrue(result.pageLandscape);
                Assert.AreEqual(-77.77993F, result.printAreaRectangle.Left, 0.001F);
                Assert.AreEqual(41.0349922F, result.printAreaRectangle.Bottom, 0.001F);
                Assert.AreEqual(63.4918137F, result.printAreaRectangle.Right, 0.001F);
                Assert.AreEqual(-57.73753F, result.printAreaRectangle.Top, 0.001F);
            }
            finally {
                CultureInfo.CurrentCulture.ClearCachedData();
                Thread.CurrentThread.CurrentCulture = currentCulture;
            }
        }
Ejemplo n.º 23
0
        public void MigratePrintArea()
        {
            UndoMgr undomgr = new UndoMgr(5);
            EventDB eventDB = new EventDB(undomgr);

            eventDB.Load(TestUtil.GetTestFile("eventdb\\Lk Samm print area.ppen"));
            eventDB.Validate();

            PrintArea result;

            result = eventDB.GetEvent().printArea;
            Assert.IsTrue(result.autoPrintArea);
            Assert.IsTrue(result.restrictToPageSize);
            Assert.AreEqual(850, result.pageWidth);
            Assert.AreEqual(1100, result.pageHeight);
            Assert.AreEqual(25, result.pageMargins);
            Assert.IsTrue(result.pageLandscape);

            result = eventDB.GetCourse(CourseId(1)).printArea;
            Assert.IsTrue(result.autoPrintArea);
            Assert.IsTrue(result.restrictToPageSize);
            Assert.AreEqual(850, result.pageWidth);
            Assert.AreEqual(1100, result.pageHeight);
            Assert.AreEqual(25, result.pageMargins);
            Assert.IsTrue(result.pageLandscape);

            result = eventDB.GetCourse(CourseId(2)).printArea;
            Assert.IsTrue(result.autoPrintArea);
            Assert.IsTrue(result.restrictToPageSize);
            Assert.AreEqual(850, result.pageWidth);
            Assert.AreEqual(1100, result.pageHeight);
            Assert.AreEqual(0, result.pageMargins);
            Assert.IsTrue(result.pageLandscape);

            result = eventDB.GetCourse(CourseId(3)).printArea;
            Assert.IsFalse(result.autoPrintArea);
            Assert.IsFalse(result.restrictToPageSize);
            Assert.AreEqual(850, result.pageWidth);
            Assert.AreEqual(1100, result.pageHeight);
            Assert.AreEqual(25, result.pageMargins);
            Assert.IsFalse(result.pageLandscape);
            Assert.AreEqual(-71.2542343F, result.printAreaRectangle.Left, 0.001F);
            Assert.AreEqual(72.57579F, result.printAreaRectangle.Bottom, 0.001F);
            Assert.AreEqual(50.98423F, result.printAreaRectangle.Right, 0.001F);
            Assert.AreEqual(-79.690155F, result.printAreaRectangle.Top, 0.001F);

            result = QueryEvent.GetPrintArea(eventDB, Designator(4, 0));
            Assert.IsTrue(result.autoPrintArea);
            Assert.IsTrue(result.restrictToPageSize);
            Assert.AreEqual(850, result.pageWidth);
            Assert.AreEqual(1100, result.pageHeight);
            Assert.AreEqual(25, result.pageMargins);
            Assert.IsTrue(result.pageLandscape);

            result = QueryEvent.GetPrintArea(eventDB, Designator(4, 1));
            Assert.IsFalse(result.autoPrintArea);
            Assert.IsFalse(result.restrictToPageSize);
            Assert.AreEqual(850, result.pageWidth);
            Assert.AreEqual(1100, result.pageHeight);
            Assert.AreEqual(25, result.pageMargins);
            Assert.IsTrue(result.pageLandscape);
            Assert.AreEqual(-77.77993F, result.printAreaRectangle.Left, 0.001F);
            Assert.AreEqual(41.0349922F, result.printAreaRectangle.Bottom, 0.001F);
            Assert.AreEqual(63.4918137F, result.printAreaRectangle.Right, 0.001F);
            Assert.AreEqual(-57.73753F, result.printAreaRectangle.Top, 0.001F);
        }