public void ImportParticpantsWithClassAssignment() { string dbFilename = TestUtilities.CreateWorkingFileFrom(testContextInstance.TestDeploymentDir, @"TestDB_EmptyManyClasses.mdb"); RaceHorologyLib.Database db = new RaceHorologyLib.Database(); db.Connect(dbFilename); AppDataModel dm = new AppDataModel(db); var ir = new ImportReader(@"Teilnehmer_V1_202001301844.csv"); RaceMapping mapping = new RaceMapping(ir.Columns); ClassAssignment cla = new ClassAssignment(dm.GetParticipantClasses()); RaceImport im = new RaceImport(dm.GetRace(0), mapping, cla); var impRes = im.DoImport(ir.Data); Assert.AreEqual(153, impRes.SuccessCount); Assert.AreEqual(0, impRes.ErrorCount); for (int i = 0; i < 153; i++) { Participant p = dm.GetParticipants()[i]; RaceParticipant rp = dm.GetRace(0).GetParticipants()[i]; Assert.AreEqual(string.Format("Name {0}", i + 1), p.Name); Assert.AreEqual(string.Format("Name {0}", i + 1), rp.Name); Assert.IsTrue(rp.Participant == p); Assert.AreSame(cla.DetermineClass(p), p.Class); Assert.IsNotNull(p.Class); } }
public void ImportParticpantsForRaceWithPoints() { TestDataGenerator tg = new TestDataGenerator(); var ir = new ImportReader(@"Teilnehmer_Import_Race.xlsx"); RaceMapping mapping = new RaceMapping(ir.Columns); RaceImport im = new RaceImport(tg.Model.GetRace(0), mapping); var impRes = im.DoImport(ir.Data); Assert.AreEqual(20, impRes.SuccessCount); Assert.AreEqual(0, impRes.ErrorCount); for (int i = 0; i < 20; i++) { Participant p = tg.Model.GetParticipants()[i]; RaceParticipant rp = tg.Model.GetRace(0).GetParticipants()[i]; Assert.AreEqual(string.Format("Name {0}", i + 1), p.Name); Assert.AreEqual(string.Format("Name {0}", i + 1), rp.Name); if (i == 0) { Assert.AreEqual((double)(1), rp.Points); } else if (i == 1) { Assert.AreEqual((double)(2), rp.Points); } else if (i == 2) { Assert.AreEqual((double)(3.3), rp.Points); } else if (i == 3) { Assert.AreEqual((double)(-1), rp.Points); } else { Assert.AreEqual((double)(i + 1), rp.Points); } if (i == 3) { Assert.AreEqual((uint)(0), rp.StartNumber); } else { Assert.AreEqual((uint)(20 - i), rp.StartNumber); } Assert.IsTrue(rp.Participant == p); } }
public void ImportParticpantsForRaceViaZip() { string[] columnShall = { "id", "nachname", "vorname", "geschlecht", "verein", "verbandskürzel", "jg", "punkte", "adr_str", "adr_plz", "adr_ort" }; void checkColumns(List <string> columns) { for (int i = 0; i < columnShall.Length; i++) { Assert.AreEqual(columnShall[i], columns[i]); } } TestDataGenerator tg = new TestDataGenerator(); var ir = new ImportZipReader(@"1557MRBR.zip"); checkColumns(ir.Columns); RaceMapping mapping = new RaceMapping(ir.Columns); RaceImport im = new RaceImport(tg.Model.GetRace(0), mapping); var impRes = im.DoImport(ir.Data); Assert.AreEqual(3, impRes.SuccessCount); Assert.AreEqual(0, impRes.ErrorCount); Assert.AreEqual(3, ir.Data.Tables[0].Rows.Count); for (int i = 0; i < 2; i++) { Participant p = tg.Model.GetParticipants()[i]; RaceParticipant rp = tg.Model.GetRace(0).GetParticipants()[i]; Assert.AreEqual(string.Format("NACHNAME{0}", i + 1), p.Name); Assert.AreEqual(string.Format("Vorname{0}", i + 1), rp.Firstname); Assert.IsTrue(rp.Participant == p); } }
public void ImportRace() { var db = new RaceHorologyLib.Database(); string dbFilename = db.CreateDatabase("new.mdb"); db.Connect(dbFilename); //RaceHorologyLib.IAppDataModelDataBase db = new RaceHorologyLib.DatabaseDummy("./"); AppDataModel dm = new AppDataModel(db); // Create a Race dm.AddRace(new Race.RaceProperties { RaceType = Race.ERaceType.GiantSlalom, Runs = 2 }); ImportResults impRes = new ImportResults(); TimeSpan time = TestUtilities.Time(() => { var ir = new ImportReader(@"Teilnehmer_V1_202001301844.csv"); RaceMapping mapping = new RaceMapping(ir.Columns); RaceImport im = new RaceImport(dm.GetRace(0), mapping); impRes = im.DoImport(ir.Data); }); Assert.AreEqual(153, impRes.SuccessCount); Assert.AreEqual(0, impRes.ErrorCount); Assert.IsTrue(dm.GetParticipants().Count() == 153); Assert.IsTrue(dm.GetRace(0).GetParticipants().Count() == 153); TestContext.WriteLine(string.Format("Import took: {0:0.00} sec", time.TotalSeconds)); Assert.IsTrue(time.TotalSeconds < 4); //db.Close(); }
private void btnImport_Click(object sender, RoutedEventArgs e) { string messageTextDetails = ""; if (lbRaces.SelectedItems.Count > 0) { foreach (var r in lbRaces.SelectedItems) { Race race = r as Race; if (race != null) { RaceImport imp = new RaceImport(race, _importMapping, new ClassAssignment(_dm.GetParticipantClasses())); ImportResults results = imp.DoImport(_importReader.Data); messageTextDetails += string.Format( "Zusammenfassung für das Rennen {0}:\n" + "- Erfolgreich importierte Teilnehmer: {1}\n" + "- Nicht importierte Teilnehmer: {2}\n\n", race.ToString(), results.SuccessCount, results.ErrorCount); } } } else { ParticipantImport imp = new ParticipantImport(_dm.GetParticipants(), _importMapping, _dm.GetParticipantCategories(), new ClassAssignment(_dm.GetParticipantClasses())); ImportResults results = imp.DoImport(_importReader.Data); messageTextDetails += string.Format( "Zusammenfassung für den allgemeinen Teilnehmerimport:\n" + "- Erfolgreich importierte Teilnehmer: {0}\n" + "- Nicht importierte Teilnehmer: {1}\n\n", results.SuccessCount, results.ErrorCount); } MessageBox.Show("Der Importvorgang wurde abgeschlossen: \n\n" + messageTextDetails, "Importvorgang", MessageBoxButton.OK, MessageBoxImage.Information); DialogResult = true; }
public void ImportParticpantsForRace() { TestDataGenerator tg = new TestDataGenerator(); var ir = new ImportReader(@"Teilnehmer_V1_202001301844.csv"); RaceMapping mapping = new RaceMapping(ir.Columns); RaceImport im = new RaceImport(tg.Model.GetRace(0), mapping); var impRes = im.DoImport(ir.Data); Assert.AreEqual(153, impRes.SuccessCount); Assert.AreEqual(0, impRes.ErrorCount); for (int i = 0; i < 153; i++) { Participant p = tg.Model.GetParticipants()[i]; RaceParticipant rp = tg.Model.GetRace(0).GetParticipants()[i]; Assert.AreEqual(string.Format("Name {0}", i + 1), p.Name); Assert.AreEqual(string.Format("Name {0}", i + 1), rp.Name); Assert.IsTrue(rp.Participant == p); } }