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)); }