Exemple #1
0
        // sort rider order according to their previous times, as far as possible,
        // with seeds at each 10,20,30,... and 5,15,25... etc.
        private void SeededSortPart(ref List<Entry> sortedRows, ref List<Entry> newRows, int seed)
        {
            // use a TimeSpan for start & end times, to avoid date apeparing in columns
            //TimeSpan startTimeSpan = new TimeSpan(StartTime.Hour, StartTime.Minute, 0);
            long start = this.Time;

            int ridersToSort = sortedRows.Count;
            int digitsToSort = ridersToSort / 10;
            if (seed <= ridersToSort % 10)
                ++digitsToSort;

            //for (int row = 0; row < timeTrial1.Riders.Count; row++)
            //{
            //    if (row >= ridersToSort)
            //        // rest of riders are not in event
            //        break;
                // the rider number that now needs to be first
                //int riderNumber = (int)sortedRows[row]["Number"];

                foreach (Entry rRow in sortedRows)
                {
                  //  if (rRow.Number == riderNumber)
                    {
                        //Rider r = new Rider(rRow);
                        Entry entry = new Entry(rRow.Number, rRow.Start, rRow.Finish, rRow.RiderID, rRow.Position);
                        //TimeTrial1.EventRow eRow;

                        if (newRows.Find(delegate(Entry newrow)
                        { return entry.RiderID == newrow.RiderID; }) != null)
                            // rider already placed
                            continue;

                        //eRow = timeTrial1.Event.NewEventRow();

                        //eRow.Name = r.name;
                        //eRow.Club = r.club;
                        //eRow.Category = r.cat.ToString();
                        //eRow.VetStd = r.VetStandardTime(int.Parse(this.comboDistance.Text));
                        if (digitsToSort > 0 /*&& (int)sortedRows[row]["Number"] == -1*/)
                        {
                            entry.Number = digitsToSort * 10 + seed - 10;
                            //if (seed == 10) eRow.Number -= 10; ;
                            --digitsToSort;
                        }
                        else
                            continue;

                       // entry.Start = startTimeSpan.Add(new TimeSpan(0, entry.Number, 0));
                        entry.Start = start + entry.Number * 60 * 1000;
                        //entry.TimeAggregate = ConvertTarget(r.timeAggregate);
                        newRows.Add(entry);
                    }
                }

            //}
        }
Exemple #2
0
 public Event(int id, int courseID, long start, int clubid,  Entry[] elist)
 {
     ID = id;
     CourseID = courseID;
     ClubID = clubid;
     StartTime = new DateTime(start);
     Time = start;
     Entries = elist;
     OddData = 0;
 }