public void StartNumberAssignment_Manual_Test() { string dbFilename = TestUtilities.CreateWorkingFileFrom(testContextInstance.TestDeploymentDir, @"TestDB_LessParticipants_MultipleRacesNoStartnumber.mdb"); RaceHorologyLib.Database db = new RaceHorologyLib.Database(); db.Connect(dbFilename); AppDataModel model = new AppDataModel(db); var rps = model.GetRace(0).GetParticipants().ToList(); StartNumberAssignment sna = new StartNumberAssignment(); uint sn = sna.AssignNextFree(rps[0]); Assert.AreEqual(1U, sn); Assert.AreEqual(rps[0], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 1).Participant); sn = sna.AssignNextFree(rps[1]); Assert.AreEqual(2U, sn); Assert.AreEqual(rps[1], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 2).Participant); sna.Assign(4U, rps[2]); Assert.AreEqual(rps[2], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 4).Participant); sn = sna.AssignNextFree(rps[3]); Assert.AreEqual(5U, sn); Assert.AreEqual(rps[3], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 5).Participant); sna.InsertAndShift(2U); Assert.AreEqual(rps[0], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 1).Participant); Assert.AreEqual(null, sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 2).Participant); Assert.AreEqual(rps[1], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 3).Participant); Assert.AreEqual(null, sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 4).Participant); Assert.AreEqual(rps[2], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 5).Participant); Assert.AreEqual(rps[3], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 6).Participant); sna.Assign(1U, null); Assert.AreEqual(null, sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 1).Participant); Assert.AreEqual(null, sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 2).Participant); Assert.AreEqual(rps[1], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 3).Participant); Assert.AreEqual(null, sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 4).Participant); Assert.AreEqual(rps[2], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 5).Participant); Assert.AreEqual(rps[3], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 6).Participant); sna.Delete(1U); Assert.AreEqual(null, sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 1).Participant); Assert.AreEqual(rps[1], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 2).Participant); Assert.AreEqual(null, sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 3).Participant); Assert.AreEqual(rps[2], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 4).Participant); Assert.AreEqual(rps[3], sna.ParticipantList.FirstOrDefault(v => v?.StartNumber == 5).Participant); }
public void StartNumberAssignment_SaveToRace_Test2() { string dbFilename = TestUtilities.CreateWorkingFileFrom(testContextInstance.TestDeploymentDir, @"TestDB_LessParticipants_MultipleRacesNoStartnumber.mdb"); RaceHorologyLib.Database db = new RaceHorologyLib.Database(); db.Connect(dbFilename); AppDataModel model = new AppDataModel(db); var race = model.GetRaces().FirstOrDefault(r => r.RaceType == Race.ERaceType.GiantSlalom); StartNumberAssignment sna = new StartNumberAssignment(); sna.LoadFromRace(race); uint sn = 1; foreach (var p in race.GetParticipants()) { sna.Assign(sn, p); sn++; } sna.SaveToRace(race); sn = 1; foreach (var p in race.GetParticipants()) { Assert.AreEqual(sn, p.StartNumber); sn++; } }
public void StartNumberAssignment_LoadFromRace_Test() { string dbFilename = TestUtilities.CreateWorkingFileFrom(testContextInstance.TestDeploymentDir, @"TestDB_LessParticipants_MultipleRaces.mdb"); RaceHorologyLib.Database db = new RaceHorologyLib.Database(); db.Connect(dbFilename); AppDataModel model = new AppDataModel(db); var race = model.GetRaces().FirstOrDefault(r => r.RaceType == Race.ERaceType.GiantSlalom); StartNumberAssignment sna = new StartNumberAssignment(); sna.LoadFromRace(race); var rps = race.GetParticipants().ToList(); foreach (var snap in sna.ParticipantList) { if (snap.StartNumber != 0) { var rp = rps.FirstOrDefault(x => x.StartNumber == snap.StartNumber); Assert.AreEqual(snap.Participant, rp); } } Assert.IsFalse(sna.DifferentToRace(race)); sna.Assign(1000, race.GetParticipant(1)); Assert.IsTrue(sna.DifferentToRace(race)); sna.LoadFromRace(race); Assert.IsFalse(sna.DifferentToRace(race)); sna.DeleteAll(); Assert.IsTrue(sna.DifferentToRace(race)); }
private void btnAssign_Click(object sender, RoutedEventArgs e) { setStartNumbersNotToAssign(); try { uint sn = uint.Parse(txtNextStartNumberManual.Text); var selParticipants = dgParticipants.SelectedItems.OfType <RaceParticipant>().ToList(); _snaWorkspace.SetNextStartNumber(sn); foreach (var selParticipant in selParticipants) { _snaWorkspace.Assign(sn, selParticipant); sn++; } dgParticipants.SelectedIndex = 0; } catch (Exception) { } }