예제 #1
0
        private void AddRaceDate(DateTime raceWhen, int raceNumber)
        {
            var insertPos = 0;
            var foundPos  = false;
            var fsdr      = new FleetSeriesDateRace(raceWhen, raceNumber);
            var item      = new ListItem {
                Text = fsdr.Print()
            };

            while (!foundPos && insertPos < _fleetSeriesDateRace.Count)
            {
                if (_fleetSeriesDateRace[insertPos].When > fsdr.When)
                {
                    foundPos = true;
                }
                else
                {
                    insertPos++;
                }
            }

            if (foundPos)
            {
                // Put into position
                listSelectedRace.Items.Insert(insertPos, item);
                _fleetSeriesDateRace.Insert(insertPos, fsdr);
            }
            else
            {
                // Add to the end
                listSelectedRace.Items.Add(item);
                _fleetSeriesDateRace.Add(fsdr);
            }
        }
예제 #2
0
        private void RecalcRaceNumbers()
        {
            var datesCount = _fleetSeriesDateRace.Count;
            var fsdr       = new FleetSeriesDateRace[datesCount];

            _fleetSeriesDateRace.CopyTo(fsdr); // make a backup copy

            listSelectedRace.Items.Clear();
            _fleetSeriesDateRace.Clear();

            for (var index = 0; index < datesCount; index++)
            {
                AddRaceDate(fsdr[index].When, SelectedNextRaceNumber + index);
            }
        }