public ViewFactory() { _prototypes = new Dictionary <string, ViewProvider>(); _prototypes["Startlist_1stRun_StartnumberAscending"] = new FirstRunStartListViewProvider(); _prototypes["Startlist_1stRun_Points_0"] = new DSVFirstRunStartListViewProvider(0); _prototypes["Startlist_1stRun_Points_15"] = new DSVFirstRunStartListViewProvider(15); _prototypes["Startlist_1stRun_Points_30"] = new DSVFirstRunStartListViewProvider(30); _prototypes["Startlist_2nd_StartnumberAscending"] = new SimpleSecondRunStartListViewProvider(StartListEntryComparer.Direction.Ascending); //_prototypes["Startlist_2nd_StartnumberAscending"] = new SimpleSecondRunStartListViewProvider(StartListEntryComparer.Direction.Ascending); _prototypes["Startlist_2nd_StartnumberDescending"] = new SimpleSecondRunStartListViewProvider(StartListEntryComparer.Direction.Descending); //_prototypes["Startlist_2nd_StartnumberDescending"] = new SimpleSecondRunStartListViewProvider(StartListEntryComparer.Direction.Descending); _prototypes["Startlist_2nd_PreviousRun_0_OnlyWithResults"] = new BasedOnResultsFirstRunStartListViewProvider(0, false); _prototypes["Startlist_2nd_PreviousRun_0_AlsoWithoutResults"] = new BasedOnResultsFirstRunStartListViewProvider(0, true); _prototypes["Startlist_2nd_PreviousRun_15_OnlyWithResults"] = new BasedOnResultsFirstRunStartListViewProvider(15, false); _prototypes["Startlist_2nd_PreviousRun_15_AlsoWithoutResults"] = new BasedOnResultsFirstRunStartListViewProvider(15, true); _prototypes["Startlist_2nd_PreviousRun_30_OnlyWithResults"] = new BasedOnResultsFirstRunStartListViewProvider(30, false); _prototypes["Startlist_2nd_PreviousRun_30_AlsoWithoutResults"] = new BasedOnResultsFirstRunStartListViewProvider(30, true); _prototypes["Startlist_2nd_PreviousRun_all_OnlyWithResults"] = new BasedOnResultsFirstRunStartListViewProvider(int.MaxValue, false); _prototypes["Startlist_2nd_PreviousRun_all_AlsoWithoutResults"] = new BasedOnResultsFirstRunStartListViewProvider(int.MaxValue, true); _prototypes["RaceResult_BestOfTwo"] = new RaceResultViewProvider(RaceResultViewProvider.TimeCombination.BestRun); _prototypes["RaceResult_Sum"] = new RaceResultViewProvider(RaceResultViewProvider.TimeCombination.Sum); _prototypes["RaceResult_SumBest2"] = new RaceResultViewProvider(RaceResultViewProvider.TimeCombination.SumBest2); _prototypes["RaceResult_SumDSVPointsSchool"] = new DSVSchoolRaceResultViewProvider(); _prototypes["RaceRunResult"] = new RaceRunResultViewProvider(); }
void fillMandatoryFields(AppDataModel model) { var raceProps = new AdditionalRaceProperties(); model.GetRace(0).AdditionalProperties = raceProps; raceProps.DateResultList = DateTime.Today; model.GetRace(0).AdditionalProperties.RaceNumber = "1234"; model.GetRace(0).AdditionalProperties.Organizer = "WSV Glonn"; model.GetRace(0).AdditionalProperties.Description = "Test Race"; model.GetRace(0).AdditionalProperties.Location = "Test Location"; model.GetDB().StoreKeyValue("DSV_UsedDSVList", "123"); model.GetRace(0).AdditionalProperties.RaceManager = new AdditionalRaceProperties.Person { Name = "Race Manager", Club = "Club" }; model.GetRace(0).AdditionalProperties.RaceReferee = new AdditionalRaceProperties.Person { Name = "Referee, Race", Club = "Club" }; model.GetRace(0).AdditionalProperties.TrainerRepresentative = new AdditionalRaceProperties.Person { Name = "T.Rep", Club = "Club" }; raceProps.CoarseName = "Kurs 1"; raceProps.StartHeight = 1000; raceProps.FinishHeight = 100; raceProps.CoarseLength = 1000; raceProps.RaceRun1.Gates = 10; raceProps.RaceRun1.Turns = 9; raceProps.RaceRun1.CoarseSetter = new AdditionalRaceProperties.Person { Name = "Sven Flossmann", Club = "WSV Glonn" }; raceProps.RaceRun1.Forerunner1 = new AdditionalRaceProperties.Person { Name = "F. Runner", Club = "WSV Glonn" }; if (model.GetRace(0).GetMaxRun() > 1) { raceProps.RaceRun2.Gates = 10; raceProps.RaceRun2.Turns = 9; raceProps.RaceRun2.CoarseSetter = new AdditionalRaceProperties.Person { Name = "Sven Flossmann", Club = "WSV Glonn" }; raceProps.RaceRun2.Forerunner1 = new AdditionalRaceProperties.Person { Name = "F. Runner", Club = "WSV Glonn" }; } model.GetRace(0).RaceConfiguration.ValueF = 720.0; var rvp = new DSVSchoolRaceResultViewProvider(); rvp.Init(model.GetRace(0), model); model.GetRace(0).SetResultViewProvider(rvp); }
Race createTestData(IEnumerable <TestData> testData) { TestDataGenerator tg = new TestDataGenerator(); Race race = tg.Model.GetRace(0); var rvp = new DSVSchoolRaceResultViewProvider(); rvp.Init(race, tg.Model); race.SetResultViewProvider(rvp); foreach (var td in testData) { var rp = tg.createRaceParticipant(cat: tg.findCat('W')); rp.Points = td.Points; race.GetRun(0).SetRunTime(rp, TimeSpan.FromSeconds(td.RunTime)); } return(race); }
protected void writeRaceData(Race race) { _writer.WriteStartElement("racedata"); string usedDSVList = race.GetDataModel().GetDB().GetKeyValue("DSV_UsedDSVList"); if (string.IsNullOrWhiteSpace(usedDSVList)) { throw new DSVExportException("missing useddsvlist"); } _writer.WriteStartElement("useddsvlist"); _writer.WriteValue(usedDSVList); _writer.WriteEndElement(); if (race.RaceConfiguration.ValueF == 0.0) { throw new DSVExportException("missing f-value"); } _writer.WriteStartElement("fvalue"); _writer.WriteValue(race.RaceConfiguration.ValueF); _writer.WriteEndElement(); DSVSchoolRaceResultViewProvider dsvRaceVP = race.GetResultViewProvider() as DSVSchoolRaceResultViewProvider; if (dsvRaceVP == null) { throw new DSVExportException("wrong raceresultview"); } DSVRaceCalculation dsvCalcW = dsvRaceVP.GetDSVRaceCalculationWomen(); if (dsvCalcW != null) { _writer.WriteStartElement("racepenalty"); _writer.WriteAttributeString("gender", "L"); _writer.WriteStartElement("applied_penalty"); _writer.WriteValue(dsvCalcW.AppliedPenalty); _writer.WriteEndElement(); _writer.WriteStartElement("calculated_penalty"); _writer.WriteValue(dsvCalcW.CalculatedPenalty); _writer.WriteEndElement(); _writer.WriteEndElement(); } DSVRaceCalculation dsvCalcM = dsvRaceVP.GetDSVRaceCalculationMen(); if (dsvCalcM != null) { _writer.WriteStartElement("racepenalty"); _writer.WriteAttributeString("gender", "M"); _writer.WriteStartElement("applied_penalty"); _writer.WriteValue(dsvCalcM.AppliedPenalty); _writer.WriteEndElement(); _writer.WriteStartElement("calculated_penalty"); _writer.WriteValue(dsvCalcM.CalculatedPenalty); _writer.WriteEndElement(); _writer.WriteEndElement(); } if (race.AdditionalProperties?.RaceManager == null || ((AdditionalRaceProperties.Person)race.AdditionalProperties?.RaceManager).IsEmpty()) { throw new DSVExportException("missing racejury ChiefRace"); } writeJuryPerson(_writer, "ChiefRace", race.AdditionalProperties?.RaceManager); if (race.AdditionalProperties?.RaceReferee == null || ((AdditionalRaceProperties.Person)race.AdditionalProperties?.RaceReferee).IsEmpty()) { throw new DSVExportException("missing racejury Referee"); } writeJuryPerson(_writer, "Referee", race.AdditionalProperties?.RaceReferee); if (race.AdditionalProperties?.TrainerRepresentative == null || ((AdditionalRaceProperties.Person)race.AdditionalProperties?.TrainerRepresentative).IsEmpty()) { throw new DSVExportException("missing racejury RepresentativeTrainer"); } writeJuryPerson(_writer, "RepresentativeTrainer", race.AdditionalProperties?.TrainerRepresentative); writeRunData(race.GetRun(0), race.AdditionalProperties?.RaceRun1); if (race.GetMaxRun() > 1) { writeRunData(race.GetRun(1), race.AdditionalProperties?.RaceRun2); } _writer.WriteEndElement(); }
public void BasicExceptions_MandatoryFields() { var model = createTestDataModel1Race1Run(); DSVExport dsvExport = new DSVExport(); MemoryStream xmlData = null; var raceProps = new AdditionalRaceProperties(); model.GetRace(0).AdditionalProperties = raceProps; xmlData = new MemoryStream(); Assert.AreEqual("missing racedate", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); raceProps.DateResultList = DateTime.Today; xmlData = new MemoryStream(); Assert.AreEqual("missing raceid", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); model.GetRace(0).AdditionalProperties.RaceNumber = "1234"; xmlData = new MemoryStream(); Assert.AreEqual("missing raceorganizer", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); model.GetRace(0).AdditionalProperties.Organizer = "WSV Glonn"; xmlData = new MemoryStream(); Assert.AreEqual("missing racename", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); model.GetRace(0).AdditionalProperties.Description = "Test Race"; xmlData = new MemoryStream(); Assert.AreEqual("missing raceplace", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); model.GetRace(0).AdditionalProperties.Location = "Test Location"; xmlData = new MemoryStream(); Assert.AreEqual("missing useddsvlist", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); model.GetDB().StoreKeyValue("DSV_UsedDSVList", "123"); xmlData = new MemoryStream(); Assert.AreEqual("missing f-value", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); model.GetRace(0).RaceConfiguration.ValueF = 720.0; xmlData = new MemoryStream(); Assert.AreEqual("wrong raceresultview", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); var rvp = new DSVSchoolRaceResultViewProvider(); rvp.Init(model.GetRace(0), model); model.GetRace(0).SetResultViewProvider(rvp); xmlData = new MemoryStream(); Assert.AreEqual("missing racejury ChiefRace", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); model.GetRace(0).AdditionalProperties.RaceManager = new AdditionalRaceProperties.Person { Name = "Race Manager", Club = "Club" }; xmlData = new MemoryStream(); Assert.AreEqual("missing racejury Referee", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); model.GetRace(0).AdditionalProperties.RaceReferee = new AdditionalRaceProperties.Person { Name = "Race Referee", Club = "Club" }; xmlData = new MemoryStream(); Assert.AreEqual("missing racejury RepresentativeTrainer", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); model.GetRace(0).AdditionalProperties.TrainerRepresentative = new AdditionalRaceProperties.Person { Name = "Trainer Rep", Club = "Club" }; xmlData = new MemoryStream(); Assert.AreEqual("missing coarsename", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); raceProps.CoarseName = "Kurs 1"; xmlData = new MemoryStream(); Assert.AreEqual("missing number_of_gates", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); raceProps.RaceRun1.Gates = 10; xmlData = new MemoryStream(); Assert.AreEqual("missing number_of_turninggates", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); raceProps.RaceRun1.Turns = 9; xmlData = new MemoryStream(); Assert.AreEqual("missing startaltitude", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); raceProps.StartHeight = 1000; xmlData = new MemoryStream(); Assert.AreEqual("missing finishaltitude", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); raceProps.FinishHeight = 100; xmlData = new MemoryStream(); Assert.AreEqual("missing courselength", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); raceProps.CoarseLength = 1000; xmlData = new MemoryStream(); Assert.AreEqual("missing coursesetter", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); raceProps.RaceRun1.CoarseSetter = new AdditionalRaceProperties.Person { Name = "Sven Flossmann", Club = "WSV Glonn" }; xmlData = new MemoryStream(); Assert.AreEqual("missing forerunner", Assert.ThrowsException <DSVExportException>(() => dsvExport.ExportXML(xmlData, model.GetRace(0))).Message); raceProps.RaceRun1.Forerunner1 = new AdditionalRaceProperties.Person { Name = "Fore Runner", Club = "WSV Glonn" }; // No exception is allow to occur here xmlData = new MemoryStream(); dsvExport.ExportXML(xmlData, model.GetRace(0)); }