// Format the given CourseView into a bunch of course objects, and add it to the given course Layout public RectangleF FormatCourseToLayout(SymbolDB symbolDB, CourseView courseViewAllVariations, CourseView specificVariation, CourseLayout courseLayout, Id <CourseControl> ccSelection1, Id <CourseControl> ccSelection2, CourseLayer layerAllVariations, CourseLayer layerSpecificVariation) { this.eventDB = courseViewAllVariations.EventDB; this.symbolDB = symbolDB; this.courseLayout = courseLayout; this.courseLayerAllVariationsAndParts = layerAllVariations; this.courseLayerSpecificVariation = layerSpecificVariation; this.controlViewsAllVariationsAndParts = courseViewAllVariations.ControlViews; this.controlViewsSpecificVariation = specificVariation.ControlViews; this.controlPositions = new ControlPosition[controlViewsAllVariationsAndParts.Count]; this.courseControlIdsSpecificVariation = QueryEvent.EnumCourseControlIds(eventDB, specificVariation.CourseDesignator).ToArray(); this.courseControlIdSelection1 = ccSelection1; this.courseControlIdSelection2 = ccSelection2; this.variationMap = QueryEvent.GetVariantCodeMapping(eventDB, courseViewAllVariations.CourseDesignator); SizeF totalAbstractSize = AssignControlPositions(0, controlViewsAllVariationsAndParts.Count, 0, 0); // Now create objects now that the positions have been created. courseObjRatio = 1.0F; appearance = new CourseAppearance(); for (int index = 0; index < controlViewsAllVariationsAndParts.Count; ++index) { CreateObjectsForControlView(controlViewsAllVariationsAndParts[index], controlPositions[index]); } PointF bottomCenter = LocationFromAbstractPosition(0, 0); SizeF size = SizeFromAbstractSize(totalAbstractSize); RectangleF rect = new RectangleF(bottomCenter.X - size.Width / 2, bottomCenter.Y - size.Height, size.Width, size.Height); rect.Inflate(widthUnit, heightUnit); return(rect); }
internal double CalculateTransaction(string checkInTime, string checkOutTime, string eventName, double eventFee) { EventDB eventDB = new EventDB(); TimeSpan TimeSpanCheckOut = TimeSpan.Parse(DateTime.Parse(checkOutTime).ToString("HH:mm:ss")); TimeSpan TimeSpanCheckIn = TimeSpan.Parse(DateTime.Parse(checkInTime).ToString("HH:mm:ss")); double totalCheckedInHours = (TimeSpanCheckOut.Hours - TimeSpanCheckIn.Hours) + ((TimeSpanCheckOut.Minutes - TimeSpanCheckIn.Minutes) / 60.0); double lateMaximum = eventDB.GetEventHourCap(eventName); if (totalCheckedInHours > lateMaximum && eventName.CompareTo("Late Fee") != 0) { double timeDifference = totalCheckedInHours - lateMaximum; if (timeDifference > this.lateTime) { this.lateTime = timeDifference; totalCheckedInHours = lateMaximum; } else { totalCheckedInHours = totalCheckedInHours - this.lateTime; } this.isLate = true; } else if (this.lateTime > 0 && eventName.CompareTo("Late Fee") != 0) { totalCheckedInHours = totalCheckedInHours - this.lateTime; this.isLate = true; } return(getCharge(eventFee, eventName, totalCheckedInHours)); }
public void ActiveTab() { bool success = controller.LoadInitialFile(TestUtil.GetTestFile("selectionmgr\\sampleevent1.coursescribe"), true); Assert.IsTrue(success); Assert.AreEqual(7, selectionMgr.TabCount); Assert.AreEqual(0, selectionMgr.ActiveTab); selectionMgr.ActiveTab = 5; Assert.AreEqual(5, selectionMgr.ActiveTab); UndoMgr undoMgr = controller.GetUndoMgr(); EventDB eventDB = controller.GetEventDB(); undoMgr.BeginCommand(197, "Add course"); eventDB.AddCourse(new Course(CourseKind.Normal, "AAA", 15000, 1)); undoMgr.EndCommand(197); Assert.AreEqual(6, selectionMgr.ActiveTab); undoMgr.BeginCommand(198, "Remove courses"); eventDB.RemoveCourse(CourseId(1)); undoMgr.EndCommand(198); Assert.AreEqual(0, selectionMgr.ActiveTab); }
public void AllControlsEquals() { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); CourseView courseView, courseView2; CourseLayout course, course2; eventDB.Load(TestUtil.GetTestFile("courselayout\\marymoor1.coursescribe")); eventDB.Validate(); // Create the all controls course courseView = CourseView.CreateViewingCourseView(eventDB, CourseDesignator.AllControls); course = new CourseLayout(); course.SetLayerColor(CourseLayer.Descriptions, 0, "Black", 0, 0, 0, 1F, false); course.SetLayerColor(CourseLayer.MainCourse, 12, "Purple", 0.2F, 1, 0, 0.1F, false); CourseFormatter.FormatCourseToLayout(symbolDB, courseView, defaultCourseAppearance, course, CourseLayer.MainCourse); // Create the all controls course again courseView2 = CourseView.CreateViewingCourseView(eventDB, CourseDesignator.AllControls); course2 = new CourseLayout(); course2.SetLayerColor(CourseLayer.Descriptions, 0, "Black", 0, 0, 0, 1F, false); course2.SetLayerColor(CourseLayer.MainCourse, 12, "Purple", 0.2F, 1, 0, 0.1F, false); CourseFormatter.FormatCourseToLayout(symbolDB, courseView2, defaultCourseAppearance, course2, CourseLayer.MainCourse); // Make sure that they are equal. Assert.AreEqual(course, course, "CourseLayouts that are equivalent should compare equal."); Assert.AreEqual(course, course2, "CourseLayouts that are equivalent should compare equal."); }
public CourseSelectorTestForm(EventDB eventDB) { InitializeComponent(); this.courseSelector1.EventDB = eventDB; this.courseSelector1.ShowAllControls = true; this.courseSelector1.SelectedCourseDesignators = new CourseDesignator[] { CourseDesignator.AllControls, new CourseDesignator(new Id <Course>(2), 1), new CourseDesignator(new Id <Course>(3)), new CourseDesignator(new Id <Course>(6)) }; }
// Create highlights to and from a point to course controls. If controlDrag is set (optional), it is // used to get the correct bends for legs. // Static because it is used from DragControlMode also. public static CourseObj[] CreateLegHighlights(EventDB eventDB, PointF newPoint, Id <ControlPoint> controlDrag, ControlPointKind controlKind, Id <CourseControl> courseControlId1, Id <CourseControl> courseControlId2, float courseObjRatio, CourseAppearance appearance) { List <CourseObj> highlights = new List <CourseObj>(); if (courseControlId1.IsNotNone) { Id <ControlPoint> controlId1 = eventDB.GetCourseControl(courseControlId1).control; ControlPoint control1 = eventDB.GetControl(controlId1); LegCourseObj highlight = CreateLegHighlight(eventDB, control1.location, control1.kind, controlId1, newPoint, controlKind, controlDrag, courseObjRatio, appearance); if (highlight != null) { highlights.Add(highlight); } } if (courseControlId2.IsNotNone) { Id <ControlPoint> controlId2 = eventDB.GetCourseControl(courseControlId2).control; ControlPoint control2 = eventDB.GetControl(controlId2); LegCourseObj highlight = CreateLegHighlight(eventDB, newPoint, controlKind, controlDrag, control2.location, control2.kind, controlId2, courseObjRatio, appearance); if (highlight != null) { highlights.Add(highlight); } } return(highlights.ToArray()); }
CourseLayout activeTopologyCourseLayout; // The active topology public SelectionMgr(EventDB eventDB, SymbolDB symbolDB, Controller controller) { this.eventDB = eventDB; this.symbolDB = symbolDB; this.controller = controller; this.activeCourseDesignator = CourseDesignator.AllControls; }
public void Event() { UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); Event e = eventDB.GetEvent(); Assert.AreEqual(e.title, ""); Assert.AreEqual(e.notes, null); Assert.AreEqual(e.mapType, MapType.None); Event e2 = new Event(); e2.title = "Hello"; e2.notes = "These are my notes"; e2.mapType = MapType.OCAD; e2.mapFileName = "C:\\hello.ocad"; undomgr.BeginCommand(198, "change event"); eventDB.ChangeEvent(e2); undomgr.EndCommand(198); e = eventDB.GetEvent(); Assert.AreEqual(e2, e); }
public void OldStyleCustomText() { TestLoadFile("compatibility\\customtext.ppen"); // Make sure the custom text is right. EventDB eventDB = controller.GetEventDB(); Event ev = eventDB.GetEvent(); Assert.AreEqual(5, ev.customSymbolKey.Count); Assert.AreEqual(5, ev.customSymbolText.Count); Assert.AreEqual(true, ev.customSymbolKey["6.1"]); Assert.AreEqual(true, ev.customSymbolKey["5.6"]); Assert.AreEqual(false, ev.customSymbolKey["8.7"]); Assert.AreEqual(1, ev.customSymbolText["6.2"].Count); Assert.AreEqual("en", ev.customSymbolText["6.2"][0].Lang); Assert.AreEqual(false, ev.customSymbolText["6.2"][0].Plural); Assert.AreEqual("", ev.customSymbolText["6.2"][0].Gender); Assert.AreEqual("playground equipment", ev.customSymbolText["6.2"][0].Text); Assert.AreEqual(1, ev.customSymbolText["8.7"].Count); Assert.AreEqual("en", ev.customSymbolText["8.7"][0].Lang); Assert.AreEqual(false, ev.customSymbolText["8.7"][0].Plural); Assert.AreEqual("", ev.customSymbolText["8.7"][0].Gender); Assert.AreEqual("wet {0}", ev.customSymbolText["8.7"][0].Text); }
public JsonResult SaveEvent(Event e) { var status = false; using (EventDB dc = new EventDB()) { if (e.EventID > 0) { //Update the event var v = dc.Events.Where(a => a.EventID == e.EventID).FirstOrDefault(); if (v != null) { v.Subject = e.Subject; v.Start = e.Start; v.End = e.End; v.Description = e.Description; v.IsFullDay = e.IsFullDay; v.ThemeColor = e.ThemeColor; } } else { dc.Events.Add(e); } dc.SaveChanges(); status = true; } return(new JsonResult { Data = new { status = status } }); }
public void ClearTextAndSymbols() { UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); StringWriter writer = new StringWriter(); string actual, expected; eventDB.Load(TestUtil.GetTestFile("descformatter\\sampleevent1.coursescribe")); eventDB.Validate(); CourseView courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(CourseId(4))); DescriptionFormatter descFormatter = new DescriptionFormatter(courseView, symbolDB, DescriptionFormatter.Purpose.ForPrinting); DescriptionLine[] description = descFormatter.CreateDescription(false); DescriptionFormatter.ClearTextAndSymbols(description); DescriptionFormatter.DumpDescription(symbolDB, description, writer); actual = writer.ToString(); expected = @" | | | | | | ( 1) | | | | | | | | | ( 11) | | | | | | | | | ( 22) | : | ( 4) | | | | | | | | | ( 15) | : | ( 5) | | | | | | | | | ( 18) | | | | | | | | | ( 6) | : | "; Assert.AreEqual(expected, actual); }
public Structure(string name, Vector3 location, Random random, Module module) : base(name, location, random) { base.type = PointOfInterestType.Structure; _module = module; _event = EventDB.GetByName(name); }
public void EventsSetup() { EventDB eventDB = new EventDB(); string[] events = eventDB.GetCurrentEvents(); if (events != null) { for (int x = 0; x < events.GetLength(0); x++) { ComboBoxItem newEvent = new ComboBoxItem() { Content = events[x], Tag = events[x] }; cbo_EventChoice.Items.Add(newEvent); } if (events.GetLength(0) == 1) { cbo_EventChoice.SelectedItem = cbo_EventChoice.Items[0]; } } else { ExitToLogin(); } }
public DescriptionPrinting(EventDB eventDB, SymbolDB symbolDB, Controller controller, DescriptionPrintSettings descPrintSettings) : base(QueryEvent.GetEventTitle(eventDB, " "), controller, descPrintSettings.PageSettings, descPrintSettings.BoxSize, descPrintSettings.CountKind, descPrintSettings.Count) { this.eventDB = eventDB; this.symbolDB = symbolDB; this.descPrintSettings = descPrintSettings; }
public void Files_Relay_SingleFile() { EventDB eventDB = controller.GetEventDB(); SymbolDB symbolDB = ui.symbolDB; CoursePdfSettings settings = new CoursePdfSettings(); settings.mapDirectory = settings.fileDirectory = false; settings.outputDirectory = TestUtil.GetTestFile("controller\\pdf_create1"); settings.CourseIds = new Id <Course>[] { CourseId(2), Id <Course> .None }; settings.ColorModel = ColorModel.CMYK; settings.CropLargePrintArea = true; settings.FileCreation = CoursePdfSettings.PdfFileCreation.SingleFile; settings.PrintMapExchangesOnOneMap = false; bool success = controller.LoadInitialFile(TestUtil.GetTestFile("controller\\variations.ppen"), true); Assert.IsTrue(success); var coursePdf = new CoursePdf(eventDB, symbolDB, controller, controller.MapDisplay, settings, new CourseAppearance()); var filesToCreate = coursePdf.GetFilesToCreate(); VariationInfo[] relayVariations = QueryEvent.GetAllVariations(eventDB, CourseId(2)).ToArray(); Assert.AreEqual(1, filesToCreate.Count); Assert.AreEqual(TestUtil.GetTestFile("controller\\pdf_create1\\variations.pdf"), filesToCreate[0].First); CollectionAssert.AreEqual(new CourseDesignator[] { new CourseDesignator(CourseId(2), relayVariations[0]), new CourseDesignator(CourseId(2), relayVariations[1]), new CourseDesignator(CourseId(2), relayVariations[2]), new CourseDesignator(CourseId(2), relayVariations[3]), CourseDesignator.AllControls }, filesToCreate[0].Second.ToList()); }
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(); }
public void SpecialLegs() { UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); StringWriter writer = new StringWriter(); string actual, expected; eventDB.Load(TestUtil.GetTestFile("courseview\\speciallegs.coursescribe")); eventDB.Validate(); CourseView courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(CourseId(1))); DumpCourseView(courseView, writer); actual = writer.ToString(); expected = @"Name='Leggy', Kind='Normal', CourseId=1 Total Length=2242.8 Part Length=2242.8 Total Climb=-1 ScoreColumn=-1 Total Score=0 Total Controls=4 0: [ 0] Ids: 1, 1 Legs: (Next:1,Id:0,length:515.84) 1: [ 1] Ids: 2, 2 Legs: (Next:2,Id:2,length:420.12) 2: [ 2] Ids: 3, 3 Legs: (Next:3,Id:3,length:377.54) 3: [ 3] Ids: 4, 4 Legs: (Next:4,Id:4,length:518.8) 4: [ 4] Ids: 5, 5 Legs: (Next:5,Id:0,length:410.45) 5: [-1] Ids: 6, 6 "; Assert.AreEqual(expected, actual); }
public void DisplayAllCourseViews() { UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); eventDB.Load(TestUtil.GetTestFile("courseview\\sampleevent1.coursescribe")); eventDB.Validate(); foreach (Id <Course> courseId in QueryEvent.SortedCourseIds(eventDB)) { CourseDesignator designator; if (QueryEvent.HasVariations(eventDB, courseId)) { var variationInfo = QueryEvent.GetAllVariations(eventDB, courseId).First(); designator = new CourseDesignator(courseId, variationInfo); } else { designator = new CourseDesignator(courseId); } CourseView courseView = CourseView.CreateViewingCourseView(eventDB, designator); DumpCourseView(courseView, Console.Out); Console.WriteLine(); } }
public CourseSelectorTestForm(EventDB eventDB) { InitializeComponent(); this.courseSelector1.EventDB = eventDB; this.courseSelector1.ShowAllControls = true; this.courseSelector1.SelectedCourseDesignators = new CourseDesignator[] { CourseDesignator.AllControls, new CourseDesignator(new Id<Course>(2), 1), new CourseDesignator(new Id<Course>(3)), new CourseDesignator(new Id<Course>(6)) }; }
// Get the text name for a control. private static string SpecialName(EventDB eventDB, Id <Special> specialId) { Special special = eventDB.GetSpecial(specialId); // Resources have the name "SpecialKind_xxx" where "xxx" is the enumeration name. return(SelectionDescriptionText.ResourceManager.GetString("SpecialName_" + special.kind.ToString())); }
private void EditEventNoDiscount() { EventDB db = new EventDB(); if (cmb_PriceType.SelectedIndex == 0 && cmb_Occurence.SelectedIndex == 0) { db.HourlyPriceAlwaysAvailable(txt_EventName.Text, Convert.ToDouble(txt_Rate.Text), this.oldEventName); } else if (cmb_PriceType.SelectedIndex == 1 && cmb_Occurence.SelectedIndex == 0) { db.DailyPriceAlwaysAvailable(txt_EventName.Text, Convert.ToDouble(txt_Rate.Text), this.oldEventName); } else if (cmb_PriceType.SelectedIndex == 0 && cmb_Occurence.SelectedIndex == 1) { db.HourlyPriceSpecificDay(txt_EventName.Text, Convert.ToDouble(txt_Rate.Text), Convert.ToInt32(txt_MonthNum.Text), Convert.ToInt32(txt_DayOfMonth.Text), this.oldEventName); } else if (cmb_PriceType.SelectedIndex == 1 && cmb_Occurence.SelectedIndex == 1) { db.DailyPriceSpecificDay(txt_EventName.Text, Convert.ToDouble(txt_Rate.Text), Convert.ToInt32(txt_MonthNum.Text), Convert.ToInt32(txt_DayOfMonth.Text), this.oldEventName); } else if (cmb_PriceType.SelectedIndex == 0 && cmb_Occurence.SelectedIndex == 2) { db.HourlyPriceWeeklyOcur(txt_EventName.Text, Convert.ToDouble(txt_Rate.Text), ((ComboBoxItem)cmb_DayName.SelectedItem).Content.ToString(), this.oldEventName); } else if (cmb_PriceType.SelectedIndex == 1 && cmb_Occurence.SelectedIndex == 2) { db.DailyPriceWeeklyOcur(txt_EventName.Text, Convert.ToDouble(txt_Rate.Text), ((ComboBoxItem)cmb_DayName.SelectedItem).Content.ToString(), this.oldEventName); } }
// Describe the symbol key private static TextPart[] DescribeKey(EventDB eventDB) { List <TextPart> list = new List <TextPart>(); list.Add(new TextPart(TextFormat.Title, SelectionDescriptionText.CustomizedSymbolDesc)); return(list.ToArray()); }
private void LoadEvents() { EventDB eventDB = new EventDB(); DataTable table = eventDB.GetEventDisplay(); EventViewDataGrid.ItemsSource = table.DefaultView; }
// Determine the type of flagging private static string FlaggingType(EventDB eventDB, Id <ControlPoint> controlId1, Id <ControlPoint> controlId2, Id <Leg> legId) { string flaggingType = SelectionDescriptionText.None; FlaggingKind kind = QueryEvent.GetLegFlagging(eventDB, controlId1, controlId2, legId); switch (kind) { case FlaggingKind.All: flaggingType = SelectionDescriptionText.EntireLeg; break; case FlaggingKind.Begin: flaggingType = SelectionDescriptionText.AwayFromControl; break; case FlaggingKind.End: flaggingType = SelectionDescriptionText.IntoControl; break; } // We use slightly different wording based on the finish control. ControlPoint ending = eventDB.GetControl(controlId2); if (ending.kind == ControlPointKind.Finish) { // finish control can influence flagging! if (ending.symbolIds[0] == "14.2" && kind == FlaggingKind.None) { flaggingType = SelectionDescriptionText.FinishFunnel; } else if (ending.symbolIds[0] == "14.2" && kind == FlaggingKind.End) { flaggingType = SelectionDescriptionText.IntoFinishFunnel; } } return(flaggingType); }
public void Execute(object parameter) { if (((EventsReminderViewModel)parameter).EditSmtpClientButton_Click()) { ((EventsReminderViewModel)parameter).Refresh(EventDB.selectAll()); } }
// Describe the selection, and return an array of TextParts for display in the UI. public static TextPart[] DescribeSelection(SymbolDB symbolDB, EventDB eventDB, CourseView activeCourseView, SelectionMgr.SelectionInfo selection) { if (selection.SelectionKind == SelectionMgr.SelectionKind.Key) { return(DescribeKey(eventDB)); } else if (selection.SelectionKind == SelectionMgr.SelectionKind.TextLine) { return(DescribeTextLine(eventDB, selection.SelectedControl, selection.SelectedTextLineKind)); } else if (selection.SelectionKind == SelectionMgr.SelectionKind.Control) { return(DescribeControlPoint(symbolDB, eventDB, selection.SelectedControl, DescKind.DescPane)); } else if (selection.SelectionKind == SelectionMgr.SelectionKind.Leg) { return(DescribeLeg(eventDB, selection.SelectedCourseControl, selection.SelectedCourseControl2, DescKind.DescPane)); } else if (selection.SelectionKind == SelectionMgr.SelectionKind.Special) { return(DescribeSpecial(eventDB, selection.SelectedSpecial, activeCourseView.ScaleRatio, DescKind.DescPane)); } else if (selection.SelectionKind == SelectionMgr.SelectionKind.MapExchangeAtControl) { return(DescribeMapExchangeAtControl(eventDB, selection.SelectedControl)); } else if (selection.ActiveCourseDesignator.IsNotAllControls) { return(DescribeCourse(eventDB, activeCourseView)); } else { return(DescribeAllControls(eventDB, activeCourseView)); } }
public void HasChanged() { UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); long changeNum = 0; Assert.IsTrue(changeNum < eventDB.ChangeNum); changeNum = eventDB.ChangeNum; undomgr.BeginCommand(61, "Command1"); ControlPoint ctl1 = new ControlPoint(ControlPointKind.Start, null, new PointF(5, 0)); ctl1.symbolIds[1] = "2.8"; ctl1.symbolIds[2] = "8.5"; eventDB.AddControlPoint(ctl1); undomgr.EndCommand(61); Assert.IsTrue(changeNum < eventDB.ChangeNum); changeNum = eventDB.ChangeNum; eventDB = new EventDB(undomgr); Assert.IsTrue(changeNum != eventDB.ChangeNum); changeNum = eventDB.ChangeNum; eventDB = new EventDB(undomgr); Assert.IsTrue(changeNum != eventDB.ChangeNum); changeNum = eventDB.ChangeNum; }
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; }
public void CourseEquals() { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); CourseView courseView, courseView2; CourseLayout course, course2; eventDB.Load(TestUtil.GetTestFile("courselayout\\marymoor1.coursescribe")); eventDB.Validate(); // Create the a course view and layout courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(CourseId(3))); course = new CourseLayout(); course.SetLayerColor(CourseLayer.Descriptions, 0, "Black", 0, 0, 0, 1F, false); course.SetLayerColor(CourseLayer.MainCourse, 12, "Purple", 0.2F, 1, 0, 0.1F, false); CourseFormatter.FormatCourseToLayout(symbolDB, courseView, defaultCourseAppearance, course, CourseLayer.MainCourse); // Create it again courseView2 = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(CourseId(3))); course2 = new CourseLayout(); course2.SetLayerColor(CourseLayer.Descriptions, 0, "Black", 0, 0, 0, 1F, false); course2.SetLayerColor(CourseLayer.MainCourse, 12, "Purple", 0.2F, 1, 0, 0.1F, false); CourseFormatter.FormatCourseToLayout(symbolDB, courseView2, defaultCourseAppearance, course2, CourseLayer.MainCourse); // Make sure that they are equal. Assert.AreEqual(course, course, "CourseLayouts that are equivalent should compare equal."); Assert.AreEqual(course, course2, "CourseLayouts that are equivalent should compare equal."); }
public DefaultMode(Controller controller, EventDB eventDB, SymbolDB symbolDB, SelectionMgr selectionMgr) { this.controller = controller; this.eventDB = eventDB; this.symbolDB = symbolDB; this.selectionMgr = selectionMgr; }
// CONSDER: shouldn't take an eventDB. Should instead take a pair of CourseViewData/name or some such. public CreatePdfCourses(EventDB eventDB, bool enableMultipart) { InitializeComponent(); courseSelector.EventDB = eventDB; checkBoxMergeParts.Visible = enableMultipart; }
private bool EventNameValid(string eventName) { EventDB eventDB = new EventDB(); if (eventName.Length < 1) { WPFMessageBox.Show("You must enter an event name."); return(false); } if (eventName.Length > 50) { WPFMessageBox.Show("Event names may not be longer than 50 characters."); return(false); } if (!RegExpressions.RegexValidateEventName(eventName)) { WPFMessageBox.Show("Event names may only contain letters and spaces."); return(false); } if ((eventDB.EventNameExists(eventName) && this.oldEventName == null) || (this.oldEventName != null && this.txt_EventName.Text != this.oldEventName && eventDB.EventNameExists(eventName))) { WPFMessageBox.Show("The event name you have entered already exists."); return(false); } return(true); }
public DBManager(){ mainDB = new MainDB (); supervillainsDB = new SupervillainsDB (); schoolClassDB = new SchoolClassDB (); buildingDB = new BuildingDB (schoolClassDB); researchDB = new ResearchDB (); superHeroesDB = new SuperheroesDB (); superPowersDB = new SuperPowersDB(); eventDB = new EventDB(); }
public void AllControlsCourseView() { UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); StringWriter writer = new StringWriter(); string actual, expected; eventDB.Load(TestUtil.GetTestFile("courseview\\sampleevent1.coursescribe")); eventDB.Validate(); CourseView courseView = CourseView.CreateViewingCourseView(eventDB, CourseDesignator.AllControls); DumpCourseView(courseView, writer); actual = writer.ToString(); expected = @"Name='All controls', Kind='AllControls', CourseId=0 Total Length=0 Part Length=0 Total Climb=-1 ScoreColumn=-1 Total Score=0 Total Controls=17 0: [-1] Ids: 1, 0 1: [-1] Ids: 23, 0 2: [-1] Ids: 2, 0 3: [-1] Ids: 4, 0 4: [-1] Ids: 12, 0 5: [-1] Ids: 7, 0 6: [-1] Ids: 10, 0 7: [-1] Ids: 11, 0 8: [-1] Ids: 8, 0 9: [-1] Ids: 9, 0 10: [-1] Ids: 13, 0 11: [-1] Ids: 14, 0 12: [-1] Ids: 16, 0 13: [-1] Ids: 17, 0 14: [-1] Ids: 18, 0 15: [-1] Ids: 19, 0 16: [-1] Ids: 20, 0 17: [-1] Ids: 21, 0 18: [-1] Ids: 5, 0 19: [-1] Ids: 6, 0 20: [-1] Ids: 24, 0 21: [-1] Ids: 3, 0 22: [-1] Ids: 15, 0 23: [-1] Ids: 22, 0 Special 1 (FirstAid) Special 2 (OptCrossing) Special 3 (Boundary) Special 4 (OOB) Special 5 (Text) "; Assert.AreEqual(expected, actual); }
public void Initialize(EventDB eventDB, SymbolDB symbolDB) { eventDB.Validate(); this.eventDB = eventDB; this.symbolDB = symbolDB; descriptionControl1.SymbolDB = symbolDB; listBoxCourses.Items.Add(new CourseItem(eventDB, Id<Course>.None)); foreach (Id<Course> courseId in QueryEvent.SortedCourseIds(eventDB)) { listBoxCourses.Items.Add(new CourseItem(eventDB, courseId)); } listBoxCourses.SelectedIndex = 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; }
public void ExpandTextMapExchange() { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); CourseView courseView; // Map Exchange eventDB.Load(TestUtil.GetTestFile("courseformat\\mapexchange1.ppen")); eventDB.Validate(); courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(CourseId(6))); string result; result = CourseFormatter.ExpandText(eventDB, courseView, "$(CourseName)"); Assert.AreEqual("Course 5", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(CoursePart)"); Assert.AreEqual("", result); courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(CourseId(6), 0)); result = CourseFormatter.ExpandText(eventDB, courseView, "$(CourseName)"); Assert.AreEqual("Course 5", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(CoursePart)"); Assert.AreEqual("1", result); courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(CourseId(6), 3)); result = CourseFormatter.ExpandText(eventDB, courseView, "$(CourseName)"); Assert.AreEqual("Course 5", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(CoursePart)"); Assert.AreEqual("4", result); }
public void ExpandTextRelay() { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); CourseView courseView; string result; eventDB.Load(TestUtil.GetTestFile("queryevent\\variations.ppen")); eventDB.Validate(); // Use course 1 List<VariationInfo> variations = QueryEvent.GetAllVariations(eventDB, CourseId(1)).ToList(); courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(CourseId(1), variations[0])); result = CourseFormatter.ExpandText(eventDB, courseView, "$(CourseName)"); Assert.AreEqual("Course 1", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(Variation)"); Assert.AreEqual("ACDEFH", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(RelayTeam)"); Assert.AreEqual("--", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(RelayLeg)"); Assert.AreEqual("-", result); CourseDesignator designator = QueryEvent.EnumerateCourseDesignators(eventDB, new[] { CourseId(1) }, new Dictionary<Id<Course>, VariationChoices>() { { CourseId(1), new VariationChoices() { Kind = VariationChoices.VariationChoicesKind.ChosenTeams, FirstTeam = 4, LastTeam = 6 } } }, true).Skip(1).First(); courseView = CourseView.CreateViewingCourseView(eventDB, designator); result = CourseFormatter.ExpandText(eventDB, courseView, "$(CourseName)"); Assert.AreEqual("Course 1", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(Variation)"); Assert.AreEqual("ADEFCH", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(RelayTeam)"); Assert.AreEqual("4", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(RelayLeg)"); Assert.AreEqual("2", result); }
public void Initialize(EventDB eventDB, SymbolDB symbolDB) { this.symbolDB = symbolDB; this.eventDB = eventDB; eventDB.Validate(); popup = new SymbolPopup(symbolDB, 26); popup.Selected += PopupSelected; popup.Canceled += PopupCanceled; descriptionRenderer = new DescriptionRenderer(symbolDB); listBoxCourses.Items.Add(new CourseItem(eventDB, Id<Course>.None)); foreach (Id<Course> courseId in QueryEvent.SortedCourseIds(eventDB)) { listBoxCourses.Items.Add(new CourseItem(eventDB, courseId)); } comboBoxKind.SelectedIndex = 0; listBoxCourses.SelectedIndex = 0; }
public void ExpandText() { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); CourseView courseView; eventDB.Load(TestUtil.GetTestFile("courseformat\\marymoor6.coursescribe")); eventDB.Validate(); // Use course 1 courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(CourseId(1))); string result; result = CourseFormatter.ExpandText(eventDB, courseView, "Simple text"); Assert.AreEqual("Simple text", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$10 bill < $20 bill"); Assert.AreEqual("$10 bill < $20 bill", result); result = CourseFormatter.ExpandText(eventDB, courseView, ""); Assert.AreEqual("", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(CourseName)"); Assert.AreEqual("Course 1", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(CoursePart)"); Assert.AreEqual("", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(EventTitle): $(CourseName)"); Assert.AreEqual("Marymoor WIOL 2 The remake: Course 1", result); result = CourseFormatter.ExpandText(eventDB, courseView, "Course: $(CourseName) Length: $(CourseLength) km Scale: $(PrintScale)"); Assert.AreEqual("Course: Course 1 Length: 1.5 km Scale: 1:7,500", result); result = CourseFormatter.ExpandText(eventDB, courseView, "Course: $(CourseName) Climb: $(CourseClimb) m"); Assert.AreEqual("Course: Course 1 Climb: 20 m", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(CourseName) / $(ClassList)"); Assert.AreEqual("Course 1 / This is cool very cool", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(Variation)"); Assert.AreEqual("", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(RelayTeam)"); Assert.AreEqual("--", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(RelayLeg)"); Assert.AreEqual("-", result); // All Controls courseView = CourseView.CreateViewingCourseView(eventDB, CourseDesignator.AllControls); result = CourseFormatter.ExpandText(eventDB, courseView, "Course: $(CourseName) Length: $(CourseLength) km Scale: $(PrintScale)"); Assert.AreEqual("Course: All controls Length: 0.0 km Scale: 1:10,000", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(CourseName) / $(ClassList)"); Assert.AreEqual("All controls / ", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(CoursePart)"); Assert.AreEqual("", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(Variation)"); Assert.AreEqual("", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(RelayTeam)"); Assert.AreEqual("--", result); result = CourseFormatter.ExpandText(eventDB, courseView, "$(RelayLeg)"); Assert.AreEqual("-", result); }
// Render the given course id (0 = all controls) and kind to a bitmap, and compare it to the saved version. internal void CheckRenderBitmap(string filename, Id<Course> id, PunchcardFormat format) { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); CourseView courseView; eventDB.Load(filename); eventDB.Validate(); courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(id)); Bitmap bmNew = RenderToBitmap(eventDB, courseView, format); TestUtil.CheckBitmapsBase(bmNew, GetBitmapFileName(eventDB, id, "")); }
public void Setup() { undomgr = new UndoMgr(5); eventDB = new EventDB(undomgr); symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); eventDB.Load(TestUtil.GetTestFile("textifier\\sampleevent1.coursescribe")); eventDB.Validate(); }
public void HitTestRegular() { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); eventDB.Load(TestUtil.GetTestFile("descriptions\\sampleevent1.coursescribe")); eventDB.Validate(); CourseView courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(CourseId(4))); DescriptionFormatter descFormatter = new DescriptionFormatter(courseView, symbolDB); DescriptionLine[] description = descFormatter.CreateDescription(false); DescriptionRenderer descriptionRenderer = new DescriptionRenderer(symbolDB); descriptionRenderer.Description = description; descriptionRenderer.CellSize = 40; descriptionRenderer.Margin = 5; descriptionRenderer.DescriptionKind = DescriptionKind.Symbols; CheckHitTest(descriptionRenderer, new Point(201,36), HitTestKind.Title, 0, 0, 0, new RectangleF(5, 5, 320, 40)); CheckHitTest(descriptionRenderer, new Point(79,50), HitTestKind.Header, 1, 1, 0, new RectangleF(5, 45, 120, 40)); CheckHitTest(descriptionRenderer, new Point(145,80), HitTestKind.Header, 1, 1, 1, new RectangleF(125, 45, 120, 40)); CheckHitTest(descriptionRenderer, new Point(289, 60), HitTestKind.Header, 1, 1, 2, new RectangleF(245, 45, 80, 40)); CheckHitTest(descriptionRenderer, new Point(175,216), HitTestKind.NormalBox, 5, 5,4, new RectangleF(165,205, 40, 40)); CheckHitTest(descriptionRenderer, new Point(285,365), HitTestKind.NormalBox, 9, 9,7, new RectangleF(285, 365, 40, 40)); CheckHitTest(descriptionRenderer, new Point(81,193), HitTestKind.Directive, 4, 4,0, new RectangleF(5,165, 320, 40)); CheckHitTest(descriptionRenderer, new Point(328,147), HitTestKind.None, -1, -1, -1, new RectangleF(0, 0, 0, 0)); CheckHitTest(descriptionRenderer, new Point(255, 427), HitTestKind.OtherTextLine, 10, 10, 0, new RectangleF(5, 405, 320, 40)); descriptionRenderer.DescriptionKind = DescriptionKind.Text; CheckHitTest(descriptionRenderer, new Point(201, 36), HitTestKind.Title, 0, 0, 0, new RectangleF(5, 5, 320, 40)); CheckHitTest(descriptionRenderer, new Point(79, 50), HitTestKind.Header, 1, 1, 0, new RectangleF(5, 45, 120, 40)); CheckHitTest(descriptionRenderer, new Point(145, 80), HitTestKind.Header, 1, 1, 1, new RectangleF(125, 45, 120, 40)); CheckHitTest(descriptionRenderer, new Point(289, 60), HitTestKind.Header, 1, 1, 2, new RectangleF(245, 45, 80, 40)); CheckHitTest(descriptionRenderer, new Point(175, 216), HitTestKind.NormalText, 5, 5, -1, new RectangleF(85, 205, 240, 40)); CheckHitTest(descriptionRenderer, new Point(285, 365), HitTestKind.NormalText, 9, 9, -1, new RectangleF(85, 365, 240, 40)); CheckHitTest(descriptionRenderer, new Point(59, 302), HitTestKind.NormalBox, 7, 7, 1, new RectangleF(45,285, 40, 40)); CheckHitTest(descriptionRenderer, new Point(81, 193), HitTestKind.DirectiveText, 4, 4, -1, new RectangleF(5, 165, 320, 40)); CheckHitTest(descriptionRenderer, new Point(328, 147), HitTestKind.None, -1, -1, -1, new RectangleF(0, 0, 0, 0)); CheckHitTest(descriptionRenderer, new Point(255, 427), HitTestKind.OtherTextLine, 10, 10, 0, new RectangleF(5, 405, 320, 40)); descriptionRenderer.DescriptionKind = DescriptionKind.SymbolsAndText; CheckHitTest(descriptionRenderer, new Point(201, 36), HitTestKind.Title, 0, 0, 0, new RectangleF(5, 5, 520, 40)); CheckHitTest(descriptionRenderer, new Point(79, 50), HitTestKind.Header, 1, 1, 0, new RectangleF(5, 45, 120, 40)); CheckHitTest(descriptionRenderer, new Point(145, 80), HitTestKind.Header, 1, 1, 1, new RectangleF(125, 45, 120, 40)); CheckHitTest(descriptionRenderer, new Point(289, 60), HitTestKind.Header, 1, 1, 2, new RectangleF(245, 45, 80, 40)); CheckHitTest(descriptionRenderer, new Point(175, 216), HitTestKind.NormalBox, 5, 5, 4, new RectangleF(165, 205, 40, 40)); CheckHitTest(descriptionRenderer, new Point(285, 365), HitTestKind.NormalBox, 9, 9, 7, new RectangleF(285, 365, 40, 40)); CheckHitTest(descriptionRenderer, new Point(81, 193), HitTestKind.Directive, 4, 4, 0, new RectangleF(5, 165, 320, 40)); CheckHitTest(descriptionRenderer, new Point(431, 56), HitTestKind.None, 1, 1, -1, new RectangleF(325, 45, 200, 40)); CheckHitTest(descriptionRenderer, new Point(333, 131), HitTestKind.NormalText, 3, 3, -1, new RectangleF(325, 125, 200, 40)); CheckHitTest(descriptionRenderer, new Point(491,252), HitTestKind.DirectiveText, 6, 6, -1, new RectangleF(325, 245, 200, 40)); CheckHitTest(descriptionRenderer, new Point(527,433), HitTestKind.None, -1, -1, -1, new RectangleF(0, 0, 0, 0)); CheckHitTest(descriptionRenderer, new Point(255, 427), HitTestKind.OtherTextLine, 10, 10, 0, new RectangleF(5, 405, 520, 40)); }
// 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; }
public void HitTestAllControls() { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); eventDB.Load(TestUtil.GetTestFile("descriptions\\sampleevent1.coursescribe")); eventDB.Validate(); CourseView courseView = CourseView.CreateViewingCourseView(eventDB, CourseDesignator.AllControls); DescriptionFormatter descFormatter = new DescriptionFormatter(courseView, symbolDB); DescriptionLine[] description = descFormatter.CreateDescription(false); DescriptionRenderer descriptionRenderer = new DescriptionRenderer(symbolDB); descriptionRenderer.Description = description; descriptionRenderer.CellSize = 40; descriptionRenderer.Margin = 5; descriptionRenderer.DescriptionKind = DescriptionKind.Symbols; CheckHitTest(descriptionRenderer, new Point(143, 22), HitTestKind.Title, 0, 0, 0, new RectangleF(5, 5, 320, 40)); CheckHitTest(descriptionRenderer, new Point(116, 53), HitTestKind.Header, 1, 1, 0, new RectangleF(5, 45, 120, 40)); CheckHitTest(descriptionRenderer, new Point(259,78), HitTestKind.Header, 1, 1, 1, new RectangleF(125, 45, 200, 40)); CheckHitTest(descriptionRenderer, new Point(38,97), HitTestKind.NormalBox, 2, 2, 0, new RectangleF(5,85, 40, 40)); CheckHitTest(descriptionRenderer, new Point(226,260), HitTestKind.NormalBox, 6, 6, 5, new RectangleF(205,245, 40, 40)); CheckHitTest(descriptionRenderer, new Point(68,999), HitTestKind.Directive, 24, 24, 0, new RectangleF(5, 965, 320, 40)); CheckHitTest(descriptionRenderer, new Point(3, 184), HitTestKind.None, -1, -1, -1, new RectangleF(0, 0, 0, 0)); CheckHitTest(descriptionRenderer, new Point(262,745), HitTestKind.OtherTextLine, 18, 18,0, new RectangleF(5, 725, 320, 40)); descriptionRenderer.DescriptionKind = DescriptionKind.Text; CheckHitTest(descriptionRenderer, new Point(311,12), HitTestKind.Title, 0, 0, 0, new RectangleF(5, 5, 320, 40)); CheckHitTest(descriptionRenderer, new Point(16,82), HitTestKind.Header, 1, 1, 0, new RectangleF(5, 45, 120, 40)); CheckHitTest(descriptionRenderer, new Point(178,76), HitTestKind.Header, 1, 1, 1, new RectangleF(125, 45, 200, 40)); CheckHitTest(descriptionRenderer, new Point(38, 97), HitTestKind.NormalBox, 2, 2, 0, new RectangleF(5, 85, 40, 40)); CheckHitTest(descriptionRenderer, new Point(182,234), HitTestKind.NormalText, 5, 5, -1, new RectangleF(85,205, 240, 40)); CheckHitTest(descriptionRenderer, new Point(60,942), HitTestKind.DirectiveText, 23, 23,-1, new RectangleF(5,925, 320, 40)); CheckHitTest(descriptionRenderer, new Point(3, 184), HitTestKind.None, -1, -1, -1, new RectangleF(0, 0, 0, 0)); CheckHitTest(descriptionRenderer, new Point(262,745), HitTestKind.OtherTextLine, 18, 18,0, new RectangleF(5, 725, 320, 40)); descriptionRenderer.DescriptionKind = DescriptionKind.SymbolsAndText; CheckHitTest(descriptionRenderer, new Point(143, 22), HitTestKind.Title, 0, 0, 0, new RectangleF(5, 5, 520, 40)); CheckHitTest(descriptionRenderer, new Point(434, 25), HitTestKind.Title, 0, 0, 0, new RectangleF(5, 5, 520, 40)); CheckHitTest(descriptionRenderer, new Point(116, 53), HitTestKind.Header, 1, 1, 0, new RectangleF(5, 45, 120, 40)); CheckHitTest(descriptionRenderer, new Point(259, 78), HitTestKind.Header, 1, 1, 1, new RectangleF(125, 45, 200, 40)); CheckHitTest(descriptionRenderer, new Point(380, 76), HitTestKind.None, 1, 1, -1, new RectangleF(325,45, 200, 40)); CheckHitTest(descriptionRenderer, new Point(38, 97), HitTestKind.NormalBox, 2, 2, 0, new RectangleF(5, 85, 40, 40)); CheckHitTest(descriptionRenderer, new Point(226, 260), HitTestKind.NormalBox, 6, 6, 5, new RectangleF(205, 245, 40, 40)); CheckHitTest(descriptionRenderer, new Point(68, 999), HitTestKind.Directive, 24, 24, 0, new RectangleF(5, 965, 320, 40)); CheckHitTest(descriptionRenderer, new Point(398,554), HitTestKind.NormalText, 13, 13, -1, new RectangleF(325,525, 200, 40)); CheckHitTest(descriptionRenderer, new Point(401, 934), HitTestKind.DirectiveText, 23, 23, -1, new RectangleF(325, 925, 200, 40)); CheckHitTest(descriptionRenderer, new Point(3, 184), HitTestKind.None, -1, -1, -1, new RectangleF(0, 0, 0, 0)); CheckHitTest(descriptionRenderer, new Point(262,745), HitTestKind.OtherTextLine, 18, 18,0, new RectangleF(5, 725, 520, 40)); }
public void HitTestMultiLine() { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); eventDB.Load(TestUtil.GetTestFile("descriptions\\sampleevent6.coursescribe")); eventDB.Validate(); CourseView courseView = CourseView.CreateViewingCourseView(eventDB, DesignatorFromCourseId(eventDB, CourseId(1))); DescriptionFormatter descFormatter = new DescriptionFormatter(courseView, symbolDB); DescriptionLine[] description = descFormatter.CreateDescription(false); DescriptionRenderer descriptionRenderer = new DescriptionRenderer(symbolDB); descriptionRenderer.Description = description; descriptionRenderer.CellSize = 40; descriptionRenderer.Margin = 5; descriptionRenderer.DescriptionKind = DescriptionKind.Symbols; CheckHitTest(descriptionRenderer, new Point(143, 22), HitTestKind.Title, 0, 1, 0, new RectangleF(5, 5, 320, 80)); CheckHitTest(descriptionRenderer, new Point(13, 51), HitTestKind.Title, 0, 1, 0, new RectangleF(5, 5, 320, 80)); CheckHitTest(descriptionRenderer, new Point(178, 101), HitTestKind.SecondaryTitle, 2, 4, 0, new RectangleF(5, 85, 320, 120)); CheckHitTest(descriptionRenderer, new Point(178, 141), HitTestKind.SecondaryTitle, 2, 4, 0, new RectangleF(5, 85, 320, 120)); CheckHitTest(descriptionRenderer, new Point(178, 181), HitTestKind.SecondaryTitle, 2, 4, 0, new RectangleF(5, 85, 320, 120)); CheckHitTest(descriptionRenderer, new Point(116, 213), HitTestKind.Header, 5, 5, 0, new RectangleF(5, 205, 120, 40)); descriptionRenderer.DescriptionKind = DescriptionKind.Text; CheckHitTest(descriptionRenderer, new Point(143, 22), HitTestKind.Title, 0, 1, 0, new RectangleF(5, 5, 320, 80)); CheckHitTest(descriptionRenderer, new Point(13, 51), HitTestKind.Title, 0, 1, 0, new RectangleF(5, 5, 320, 80)); CheckHitTest(descriptionRenderer, new Point(178, 101), HitTestKind.SecondaryTitle, 2, 4, 0, new RectangleF(5, 85, 320, 120)); CheckHitTest(descriptionRenderer, new Point(178, 141), HitTestKind.SecondaryTitle, 2, 4, 0, new RectangleF(5, 85, 320, 120)); CheckHitTest(descriptionRenderer, new Point(178, 181), HitTestKind.SecondaryTitle, 2, 4, 0, new RectangleF(5, 85, 320, 120)); CheckHitTest(descriptionRenderer, new Point(116, 213), HitTestKind.Header, 5, 5, 0, new RectangleF(5, 205, 120, 40)); descriptionRenderer.DescriptionKind = DescriptionKind.SymbolsAndText; CheckHitTest(descriptionRenderer, new Point(143, 22), HitTestKind.Title, 0, 1, 0, new RectangleF(5, 5, 520, 80)); CheckHitTest(descriptionRenderer, new Point(13, 51), HitTestKind.Title, 0, 1, 0, new RectangleF(5, 5, 520, 80)); CheckHitTest(descriptionRenderer, new Point(178, 101), HitTestKind.SecondaryTitle, 2, 4, 0, new RectangleF(5, 85, 520, 120)); CheckHitTest(descriptionRenderer, new Point(178, 141), HitTestKind.SecondaryTitle, 2, 4, 0, new RectangleF(5, 85, 520, 120)); CheckHitTest(descriptionRenderer, new Point(178, 181), HitTestKind.SecondaryTitle, 2, 4, 0, new RectangleF(5, 85, 520, 120)); CheckHitTest(descriptionRenderer, new Point(116, 213), HitTestKind.Header, 5, 5, 0, new RectangleF(5, 205, 120, 40)); }
public CourseDesignator DesignatorFromCourseId(EventDB eventDB, Id<Course> courseId) { CourseDesignator designator; if (QueryEvent.HasVariations(eventDB, courseId)) { var variationInfo = QueryEvent.GetAllVariations(eventDB, courseId).First(); designator = new CourseDesignator(courseId, variationInfo); } else { designator = new CourseDesignator(courseId); } return designator; }
public void SingleVariation() { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); eventDB.Load(TestUtil.GetTestFile("queryevent\\variations.ppen")); eventDB.Validate(); VariationInfo.VariationPath variationPath = new VariationInfo.VariationPath(new[] { CourseControlId(2), CourseControlId(27), CourseControlId(30), CourseControlId(26), CourseControlId(25), CourseControlId(4), CourseControlId(28), }); VariationInfo variationInfo = new VariationInfo("AEFDCI", variationPath); CourseDesignator courseDesignator = new CourseDesignator(CourseId(1), variationInfo); CheckCourseBothAppearances("queryevent\\variations.ppen", courseDesignator, false, "singlevariation", new RectangleF(-15, -100, 230, 230)); }
void CheckCourse(string filename, CourseDesignator courseDesignator, bool addAllControls, string testName, RectangleF rect, CourseAppearance appearance) { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); CourseView courseView; CourseLayout course; eventDB.Load(TestUtil.GetTestFile(filename)); eventDB.Validate(); // Create the course courseView = CourseView.CreateViewingCourseView(eventDB, courseDesignator); course = new CourseLayout(); course.SetLayerColor(CourseLayer.Descriptions, 0, "Black", 0, 0, 0, 1F, false); course.SetLayerColor(CourseLayer.MainCourse, 11, "Purple", 0.2F, 1.0F, 0.0F, 0.07F, false); CourseFormatter.FormatCourseToLayout(symbolDB, courseView, appearance, course, CourseLayer.MainCourse); // Add all controls if requested. if (addAllControls && courseDesignator.IsNotAllControls) { courseView = CourseView.CreateFilteredAllControlsView(eventDB, new CourseDesignator[] { courseDesignator }, ControlPointKind.None, false, true); course.SetLayerColor(CourseLayer.AllControls, 12, "LightPurple", 0.1F, 0.5F, 0.0F, 0.0F, false); CourseFormatter.FormatCourseToLayout(symbolDB, courseView, appearance, course, CourseLayer.AllControls); } // Render to a map Map map = course.RenderToMap(); // Render map to the graphics. Bitmap bm = new Bitmap(1000,1000); using (Graphics g = Graphics.FromImage(bm)) { RenderOptions options = new RenderOptions(); options.usePatternBitmaps = true; options.minResolution = (float) (rect.Width / bm.Width); options.renderTemplates = RenderTemplateOption.MapAndTemplates; g.ScaleTransform((float) (bm.Width / rect.Width), - (float) (bm.Height / rect.Height)); g.TranslateTransform(-rect.Left, -rect.Top-rect.Height); g.Clear(Color.White); using (map.Read()) map.Draw(new GDIPlus_GraphicsTarget(g), rect, options, null); } TestUtil.CheckBitmapsBase(bm, "courserenderer\\" + testName); }
void CheckCourse(string testfileName, Id<Course> courseId, CourseLayer layer, string expected) { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); CourseView courseView; CourseLayout course; eventDB.Load(TestUtil.GetTestFile(testfileName)); eventDB.Validate(); // Create the course courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(courseId)); course = new CourseLayout(); CourseFormatter.FormatCourseToLayout(symbolDB, courseView, defaultCourseAppearance, course, layer); // Dump it to a string. StringWriter writer = new StringWriter(); course.Dump(writer); // Check that the string is correct. string actual = writer.ToString(); if (expected != actual) { for (int i = 0; i < Math.Min(expected.Length, actual.Length); ++i) if (actual[i] != expected[i]) { Console.WriteLine("Difference at -->{0}", actual.Substring(i, 30)); break; } } Assert.AreEqual(expected, writer.ToString()); }
public void HitTestScore() { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); eventDB.Load(TestUtil.GetTestFile("descriptions\\sampleevent1.coursescribe")); eventDB.Validate(); CourseView courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(CourseId(5))); DescriptionFormatter descFormatter = new DescriptionFormatter(courseView, symbolDB); DescriptionLine[] description = descFormatter.CreateDescription(false); DescriptionRenderer descriptionRenderer = new DescriptionRenderer(symbolDB); descriptionRenderer.Description = description; descriptionRenderer.CellSize = 40; descriptionRenderer.Margin = 5; descriptionRenderer.DescriptionKind = DescriptionKind.Symbols; CheckHitTest(descriptionRenderer, new Point(143, 22), HitTestKind.Title, 0, 0, 0, new RectangleF(5, 5, 320, 40)); CheckHitTest(descriptionRenderer, new Point(178,51), HitTestKind.SecondaryTitle, 1, 1, 0, new RectangleF(5, 45, 320, 40)); CheckHitTest(descriptionRenderer, new Point(116, 93), HitTestKind.Header, 2, 2, 0, new RectangleF(5, 85, 120, 40)); CheckHitTest(descriptionRenderer, new Point(259, 118), HitTestKind.Header, 2, 2, 1, new RectangleF(125, 85, 200, 40)); CheckHitTest(descriptionRenderer, new Point(38, 137), HitTestKind.NormalBox, 3, 3, 0, new RectangleF(5, 125, 40, 40)); CheckHitTest(descriptionRenderer, new Point(226, 260), HitTestKind.NormalBox, 6, 6, 5, new RectangleF(205, 245, 40, 40)); CheckHitTest(descriptionRenderer, new Point(3, 184), HitTestKind.None, -1, -1, -1, new RectangleF(0, 0, 0, 0)); CheckHitTest(descriptionRenderer, new Point(228,534), HitTestKind.OtherTextLine, 13, 13,0, new RectangleF(5, 525, 320, 40)); descriptionRenderer.DescriptionKind = DescriptionKind.Text; CheckHitTest(descriptionRenderer, new Point(311, 12), HitTestKind.Title, 0, 0, 0, new RectangleF(5, 5, 320, 40)); CheckHitTest(descriptionRenderer, new Point(178, 51), HitTestKind.SecondaryTitle, 1, 1, 0, new RectangleF(5, 45, 320, 40)); CheckHitTest(descriptionRenderer, new Point(16, 112), HitTestKind.Header, 2, 2, 0, new RectangleF(5, 85, 120, 40)); CheckHitTest(descriptionRenderer, new Point(178, 116), HitTestKind.Header, 2, 2, 1, new RectangleF(125, 85, 200, 40)); CheckHitTest(descriptionRenderer, new Point(38, 137), HitTestKind.NormalBox, 3, 3, 0, new RectangleF(5, 125, 40, 40)); CheckHitTest(descriptionRenderer, new Point(182, 234), HitTestKind.NormalText, 5, 5, -1, new RectangleF(85, 205, 240, 40)); CheckHitTest(descriptionRenderer, new Point(3, 184), HitTestKind.None, -1, -1, -1, new RectangleF(0, 0, 0, 0)); CheckHitTest(descriptionRenderer, new Point(228, 534), HitTestKind.OtherTextLine, 13, 13, 0, new RectangleF(5, 525, 320, 40)); descriptionRenderer.DescriptionKind = DescriptionKind.SymbolsAndText; CheckHitTest(descriptionRenderer, new Point(143, 22), HitTestKind.Title, 0, 0, 0, new RectangleF(5, 5, 520, 40)); CheckHitTest(descriptionRenderer, new Point(178, 51), HitTestKind.SecondaryTitle, 1, 1, 0, new RectangleF(5, 45, 520, 40)); CheckHitTest(descriptionRenderer, new Point(434, 25), HitTestKind.Title, 0, 0, 0, new RectangleF(5, 5, 520, 40)); CheckHitTest(descriptionRenderer, new Point(116, 93), HitTestKind.Header, 2, 2, 0, new RectangleF(5, 85, 120, 40)); CheckHitTest(descriptionRenderer, new Point(259, 118), HitTestKind.Header, 2, 2, 1, new RectangleF(125, 85, 200, 40)); CheckHitTest(descriptionRenderer, new Point(380, 116), HitTestKind.None, 2, 2, -1, new RectangleF(325, 85, 200, 40)); CheckHitTest(descriptionRenderer, new Point(38, 137), HitTestKind.NormalBox, 3, 3, 0, new RectangleF(5, 125, 40, 40)); CheckHitTest(descriptionRenderer, new Point(226, 260), HitTestKind.NormalBox, 6, 6, 5, new RectangleF(205, 245, 40, 40)); CheckHitTest(descriptionRenderer, new Point(398, 594), HitTestKind.NormalText, 14, 14, -1, new RectangleF(325, 565, 200, 40)); CheckHitTest(descriptionRenderer, new Point(3, 184), HitTestKind.None, -1, -1, -1, new RectangleF(0, 0, 0, 0)); CheckHitTest(descriptionRenderer, new Point(451, 534), HitTestKind.OtherTextLine, 13, 13, 0, new RectangleF(5, 525, 520, 40)); }
// Sets up with special symbols.xml that has fake polish text in it, to test case agreement stuff. public void SetupWithPolish() { undomgr = new UndoMgr(5); eventDB = new EventDB(undomgr); symbolDB = new SymbolDB(TestUtil.GetTestFile("textifier\\pl-symbols.xml")); eventDB.Load(TestUtil.GetTestFile("textifier\\PolishTest.ppen")); eventDB.Validate(); }
// Render the given course id (0 = all controls) and kind to a bitmap, and compare it to the saved version. internal void CheckRenderBitmapPixelAtATime(Id<Course> id, DescriptionKind kind) { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); CourseView courseView; eventDB.Load(TestUtil.GetTestFile("descriptions\\sampleevent1.coursescribe")); eventDB.Validate(); courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(id)); DescriptionFormatter descFormatter = new DescriptionFormatter(courseView, symbolDB); DescriptionLine[] description = descFormatter.CreateDescription(false); Bitmap bmNew = RenderToBitmapPixelAtATime(symbolDB, description, kind); TestUtil.CheckBitmapsBase(bmNew, DescriptionBrowser.GetBitmapFileName(eventDB, id, "", kind)); }
// Render a description to a bitmap for testing purposes. Hardcoded 70 pixel box size. internal static Bitmap RenderToBitmap(EventDB eventDB, CourseView courseView, PunchcardFormat format) { PunchesRenderer punchesRenderer = new PunchesRenderer(eventDB); punchesRenderer.CourseView = courseView; punchesRenderer.PunchcardFormat = format; punchesRenderer.CellSize = 70; punchesRenderer.Margin = 4; SizeF size = punchesRenderer.Measure(); Bitmap bm = new Bitmap((int) size.Width, (int) size.Height); Graphics g = Graphics.FromImage(bm); g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; g.Clear(Color.White); punchesRenderer.Draw(g, 0, 0, 0, punchesRenderer.Boxes.Height); g.Dispose(); return bm; }
// Render the given course id (0 = all controls) and kind to a map, and compare it to the saved version. internal void CheckRenderMap(string filename, Id<Course> id, DescriptionKind kind, int numColumns = 1) { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); CourseView courseView; eventDB.Load(filename); eventDB.Validate(); courseView = CourseView.CreateViewingCourseView(eventDB, DesignatorFromCourseId(eventDB, id)); DescriptionFormatter descFormatter = new DescriptionFormatter(courseView, symbolDB); DescriptionLine[] description = descFormatter.CreateDescription(kind == DescriptionKind.Symbols); Bitmap bmNew = RenderToMapThenToBitmap(symbolDB, description, kind, numColumns); if (numColumns > 1) TestUtil.CheckBitmapsBase(bmNew, DescriptionBrowser.GetBitmapFileName(eventDB, id, "_ocad_" + numColumns + "col", kind)); else TestUtil.CheckBitmapsBase(bmNew, DescriptionBrowser.GetBitmapFileName(eventDB, id, "_ocad", kind)); }
// Sets up with special symbols.xml that has fake german text in it, to test gender/plural stuff. public void SetupWithGerman() { undomgr = new UndoMgr(5); eventDB = new EventDB(undomgr); symbolDB = new SymbolDB(TestUtil.GetTestFile("textifier\\de_symbols.xml")); eventDB.Load(TestUtil.GetTestFile("textifier\\sampleevent2.coursescribe")); eventDB.Validate(); }
public void DisplayAllCourses() { SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml")); UndoMgr undomgr = new UndoMgr(5); EventDB eventDB = new EventDB(undomgr); CourseView courseView; CourseLayout course; eventDB.Load(TestUtil.GetTestFile("courseformat\\marymoor1.coursescribe")); eventDB.Validate(); foreach (Id<Course> courseId in QueryEvent.SortedCourseIds(eventDB)) { courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(courseId)); course = new CourseLayout(); CourseFormatter.FormatCourseToLayout(symbolDB, courseView, defaultCourseAppearance, course, 0); course.Dump(Console.Out); Console.WriteLine(); } courseView = CourseView.CreateViewingCourseView(eventDB, CourseDesignator.AllControls); course = new CourseLayout(); CourseFormatter.FormatCourseToLayout(symbolDB, courseView, defaultCourseAppearance, course, 0); course.Dump(Console.Out); }
public void Setup(string filename) { ui = TestUI.Create(); controller = ui.controller; eventDB = controller.GetEventDB(); string fileName = TestUtil.GetTestFile(filename); bool success = controller.LoadInitialFile(fileName, true); Assert.IsTrue(success); }
public CourseItem(EventDB eventDB, Id<Course> id) { this.eventDB = eventDB; this.id = id; }