예제 #1
0
        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);
        }
예제 #2
0
        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++;
            }
        }
예제 #3
0
        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)
            { }
        }