コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 private void DeInit()
 {
     _importTimeVM.Dispose();
     _importTimeVM = null;
 }