public void Init(AppDataModel dm, Race race, IImportTime importTimeDevice) { _importTimeVM = new ImportTimeEntryVM(race, importTimeDevice); dgImportTime.ItemsSource = _importTimeVM.ImportEntries; cmbRun.SelectedValuePath = "Value"; UiUtilities.FillCmbRaceRun(cmbRun, race); }
public void ImportTimeEntryVM() { TestDataGenerator tg = new TestDataGenerator(); tg.createRaceParticipants(5); var race = tg.Model.GetRace(0); ImportTimeMock importTimeMock = new ImportTimeMock(); ImportTimeEntryVM vm = new ImportTimeEntryVM(race, importTimeMock); vm.AddEntry(new ImportTimeEntry(1, new TimeSpan(0, 0, 10))); Assert.AreEqual(1, vm.ImportEntries.Count); Assert.AreEqual(1U, vm.ImportEntries[0].StartNumber); Assert.AreEqual(new TimeSpan(0, 0, 0, 10), vm.ImportEntries[0].RunTime); vm.AddEntry(new ImportTimeEntry(3, new TimeSpan(0, 0, 13))); Assert.AreEqual(2, vm.ImportEntries.Count); Assert.AreEqual(1U, vm.ImportEntries[0].StartNumber); Assert.AreEqual(new TimeSpan(0, 0, 0, 10), vm.ImportEntries[0].RunTime); Assert.AreEqual(3U, vm.ImportEntries[1].StartNumber); Assert.AreEqual(new TimeSpan(0, 0, 0, 13), vm.ImportEntries[1].RunTime); // Update startnumber 1 importTimeMock.TriggerImportTimeEntryReceived(new ImportTimeEntry(1, new TimeSpan(0, 0, 11))); Assert.AreEqual(2, vm.ImportEntries.Count); Assert.AreEqual(3U, vm.ImportEntries[0].StartNumber); Assert.AreEqual(new TimeSpan(0, 0, 0, 13), vm.ImportEntries[0].RunTime); Assert.AreEqual(1U, vm.ImportEntries[1].StartNumber); Assert.AreEqual(new TimeSpan(0, 0, 0, 11), vm.ImportEntries[1].RunTime); // Add entry without participant importTimeMock.TriggerImportTimeEntryReceived(new ImportTimeEntry(999, new TimeSpan(0, 0, 9))); Assert.AreEqual(3, vm.ImportEntries.Count); Assert.AreEqual(3U, vm.ImportEntries[0].StartNumber); Assert.AreEqual(new TimeSpan(0, 0, 0, 13), vm.ImportEntries[0].RunTime); Assert.AreEqual(1U, vm.ImportEntries[1].StartNumber); Assert.AreEqual(new TimeSpan(0, 0, 0, 11), vm.ImportEntries[1].RunTime); Assert.AreEqual(999U, vm.ImportEntries[2].StartNumber); Assert.AreEqual(new TimeSpan(0, 0, 0, 9), vm.ImportEntries[2].RunTime); // Add second entry without participant importTimeMock.TriggerImportTimeEntryReceived(new ImportTimeEntry(998, new TimeSpan(0, 0, 8))); Assert.AreEqual(4, vm.ImportEntries.Count); Assert.AreEqual(3U, vm.ImportEntries[0].StartNumber); Assert.AreEqual(new TimeSpan(0, 0, 0, 13), vm.ImportEntries[0].RunTime); Assert.AreEqual(1U, vm.ImportEntries[1].StartNumber); Assert.AreEqual(new TimeSpan(0, 0, 0, 11), vm.ImportEntries[1].RunTime); Assert.AreEqual(999U, vm.ImportEntries[2].StartNumber); Assert.AreEqual(new TimeSpan(0, 0, 0, 9), vm.ImportEntries[2].RunTime); Assert.AreEqual(998U, vm.ImportEntries[3].StartNumber); Assert.AreEqual(new TimeSpan(0, 0, 0, 8), vm.ImportEntries[3].RunTime); // Save to racerun, only time for real articipants should be taken over // StNr 1, 3 have time // StNr 2 doesn't have a time var rr1 = race.GetRun(0); Assert.AreEqual(null, rr1.GetRunResult(race.GetParticipant(1))?.Runtime); vm.Save(rr1); Assert.AreEqual(new TimeSpan(0, 0, 0, 11), rr1.GetRunResult(race.GetParticipant(1)).Runtime); Assert.AreEqual(null, rr1.GetRunResult(race.GetParticipant(2))?.Runtime); Assert.AreEqual(new TimeSpan(0, 0, 0, 13), rr1.GetRunResult(race.GetParticipant(3)).Runtime); }
private void DeInit() { _importTimeVM.Dispose(); _importTimeVM = null; }