コード例 #1
0
ファイル: Scheduler.cs プロジェクト: stoplime/DebateSchedule
        public bool autoReschedule(DateTime start)
        {
            //delete previous schedule
            List <int> previousScheduleIDs;

            accessToData.GetScheduleRows(out previousScheduleIDs);
            for (int i = 0; i < previousScheduleIDs.Count; i++)
            {
                accessToData.DeleteMatch(previousScheduleIDs[i]);
            }
            //create schedule
            List <int>    teamIDs;
            List <string> teamNames;
            List <Team>   teams = new List <Team>();

            accessToData.GetTeams(out teamIDs, out teamNames);
            for (int i = 0; i < teamIDs.Count; i++)
            {
                teams.Add(new Team(teamNames[i], teamIDs[i]));
            }
            List <Round>    rounds  = ReSchedule(teams, start);
            List <DateTime> times   = new List <DateTime>();
            List <int>      team1ID = new List <int>();
            List <int>      team2ID = new List <int>();

            numberOfRows = 0;
            for (int i = 0; i < rounds.Count; i++)
            {
                for (int j = 0; j < rounds[i].Matches.Count; j++)
                {
                    if (rounds[i].Matches[j].Team1.ID > 0 && rounds[i].Matches[j].Team2.ID > 0)
                    {
                        times.Add(rounds[i].Matches[j].Time);
                        team1ID.Add(rounds[i].Matches[j].Team1.ID);
                        team2ID.Add(rounds[i].Matches[j].Team2.ID);
                        numberOfRows++;
                    }
                }
            }
            return(accessToData.autoUpdateSchedule(times, team1ID, team2ID));
        }