protected void btnCleanPlayers_Click(object sender, EventArgs e) { PlayerManager pm = new PlayerManager(); int rowsEffected = pm.DeleteTournamentPlayers(new Guid(this.Request.QueryString["TournamentId"].ToString())); this.lblMsg.Text = string.Format("{0} players have been deleted", rowsEffected); OnDataChange(); }
internal static void ScheduleGames(TournamentInfo tournamentInfo) { //check arguments that are needed if (tournamentInfo == null) throw new ArgumentNullException("tournamentInfo"); if (tournamentInfo.TournamentId == Guid.Empty) throw new ArgumentNullException("TorunamentId"); if (tournamentInfo.OrganisationId == Guid.Empty) throw new ArgumentNullException("OrganisationId"); if (tournamentInfo.StartDate == new DateTime()) throw new ArgumentException("Incorrect tournament start date"); //set up helpers. //need current culture. CultureManager cultManager = new CultureManager(tournamentInfo.OrganisationId); PlayerManager playerManager = new PlayerManager(); playerManager.AlgoType = tournamentInfo.PairAlgo; playerManager.MatchType = tournamentInfo.MatchType; DateTime startDate = tournamentInfo.StartDate; IEnumerable<PlayersEntity> playerPairs = playerManager.BuildPairs( tournamentInfo.TournamentId); int i = 0; int numberOfGamesPerDay = 3; DateTime dts = startDate; List<Matchup> scheds = new List<Matchup>(); //schedule 3 games per day within 15 min intervals IEnumerator<DateTime> dayEnumerator = cultManager.GetNextBusinessDay(startDate).GetEnumerator(); foreach (PlayersEntity matches in playerPairs) { if ((i % numberOfGamesPerDay) == 0) { dayEnumerator.MoveNext(); dts = dayEnumerator.Current; dts = new DateTime(dts.Year, dts.Month, dts.Day, tournamentInfo.TimeWindowStart, 0, 0); } DateTime dte = dts.AddMinutes(15); //insert here scheds.Add(new Matchup() { TournamentId = tournamentInfo.TournamentId, PlayerAId = matches.PlayerAId, PlayerA = matches.PlayerAName, PlayerBId = matches.PlayerBId, PlayerB = matches.PlayerBName, Start = dts, End = dts.AddMinutes(15) // i need end date, otherwise i cant insert. }); dts = dte; i++; } using (TournaDataContext db = new TournaDataContext()) { //db.TournamentMatchups.DeleteAllOnSubmit(db.TournamentMatchups.Where(x => x.TournamentId == tournamentInfo.TournamentId)); //db.TournamentMatchups.InsertAllOnSubmit(scheds); //db.SubmitChanges(); } }